wpf

2013-01-23 48 views
5

में डेटाग्रिड मान साफ़ करें treeviewitem पर क्लिक होने पर मुझे हर बार datagrid फ़्लश करने की आवश्यकता है। मेरा कोड नीचे दिया गया है।wpf

private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) 
{ 
    this.dataGrid1.Columns.Clear(); 
    this.dataGrid1.ItemsSource= null; 
    String path =this.treeView1.SelectedItem; 
    if (!File.Exists(path)) 
     MessageBox.Show("Not Found"); 
    else 
    { 
     ob.provider(path); 

     // String data = @"C:\logs.xml"; 
     string data = path; 
     objref.functionality(data); 
     this.dataGrid1.ItemsSource = objref.Result; 
    } 
} 

लेकिन हर जब मैं एक treeview आइटम datagrid cleared-- नहीं है यह आने वाले डेटा के साथ जुड़ जाता है, पर क्लिक करें। मैंने dataGrid1.Columns.Clear() और dataGrid.ItemSource= null; दोनों का उपयोग किया मैं यह कैसे कर सकता हूं ??

उत्तर

18

आप का उपयोग करके डेटा ग्रिड पॉप्युलेट कर रहे हैं:

dataGrid.Items.Add(someObject); 

तो फिर तुम उपयोग करने के लिए सक्षम होना चाहिए:

dataGrid.Items.Clear(); 

सभी पंक्तियों को हटाने के लिए।

आप ItemsSource के लिए बाध्य कर रहे हैं की तरह है:

dataGrid.ItemsSource = someCollection; 

तो फिर तुम और शून्य पर ItemsSource सेट करने के लिए सक्षम होना चाहिए यह सभी पंक्तियों को हटा देगा।

संपादित करें:

मत भूलना यह ताज़ा करने के लिए:

dataGrid.Items.Refresh(); 
+0

Am populating। मैं इसे पहले से ही शून्य पर सेट कर दिया है। वह मेरा सवाल था। लेकिन मेरा डेटाग्रिड अभी भी साफ़ नहीं हुआ .. – BinaryMee

+0

क्या यह एकमात्र स्थान है जिसे आप पॉप्युलेट कर रहे हैं? – Rhexis

+1

इसे रीफ्रेश करने का प्रयास करें: dataGrid.Items.Refresh(); – Rhexis

0

मैं एक सार्वजनिक IEnumerable संग्रह जो हर जोड़ दिया जाता है जब समारोह कहा जाता है था। तो इसे ओवरराइट करके मैंने अपने डेटाग्रिड में डेटा फ्लश किया ..

1

आप IEnumerable<> के बजाय ObservableCollection<> कक्षा का उपयोग करने पर विचार कर सकते हैं।

ObservableCollection<User> users = new ObservableCollection<User>(); 
dataGrid1.ItemsSource = users; 

आप नीचे दिए गए कोड का उपयोग करके डेटाग्रिड को साफ़ कर सकते हैं।

users.Clear(); 
1

मैं कई दृष्टिकोण की कोशिश की है और यह सबसे अच्छा और सबसे विश्वसनीय एक अब तक का था: ItemsSource साथ

dataGrid.Columns.Clear(); 
dataGrid.Items.Clear(); 
dataGrid.Items.Refresh();