2011-12-20 20 views
6

से चयनित इटैम निकालें क्या TreeView के चयनित इटैम को शून्य या समकक्ष सेट करने का कोई आसान तरीका है? इसके अलावा, मुझे इसे सी # में करना है और एक्सएएमएल में नहीं।TreeView

सादर,

गेब्रियल

+0

आप वास्तव में क्या करना चाहते हैं? आपको चयनित इटिम को खाली करने की आवश्यकता क्यों है? –

+0

मुझे लगता है कि वह सिर्फ चयन को साफ़ करना चाहता है, शायद किसी अन्य फ़ील्ड मान पर निर्भरता में, उपयोगकर्ता को नए पेड़दृश्य नोड का चयन करना होगा, इसलिए कार्ल ने जवाब दिया –

उत्तर

6

सुनिश्चित नहीं हैं कि तुम क्या मतलब है

आप आइटम को निकालना चाहते हैं, तो इस का उपयोग करें:

treeView1.Items.Remove(treeView1.SelectedItem); 

आप चयन निकालना चाहते हैं वृक्षदृश्य से, इसका उपयोग करें:

((TreeViewItem)treeView1.SelectedItem).IsSelected = false; 
+0

'चयनित इटैम' एक ऑब्जेक्ट' है, इसलिए आपको इसे कास्ट करने की आवश्यकता है। – Ray

+0

ओह, क्षमा करें, आपको इसे TreeViewItem पर डालना होगा - एडिट – Karl

+2

यदि TreeView डेटा बाध्य है तो आप क्या करेंगे? –

3

आप चुने गए का चयन रद्द करना चाहते हैं?

मुझे लगता है कि आप कुछ इस तरह हैं:

((TreeViewItem)tv.SelectedItem).IsSelected = false; 
7

सभी पिछले जवाब उपयोगी है जब आप TreeView स्पष्ट TreeViewItem (रों) का उपयोग करते हुए निर्माण किया जाएगा। यदि आपको आइटमसोर्स का उपयोग करते समय चयन को साफ़ करने के लिए समाधान की आवश्यकता है, तो निम्न कोड का उपयोग करें:

private static TreeViewItem FindTreeViewSelectedItemContainer(ItemsControl root, object selection) 
{ 
    var item = root.ItemContainerGenerator.ContainerFromItem(selection) as TreeViewItem; 
    if (item == null) 
    { 
     foreach (var subItem in root.Items) 
     { 
      item = FindTreeViewSelectedItemContainer((TreeViewItem)root.ItemContainerGenerator.ContainerFromItem(subItem), selection); 
      if (item != null) 
      { 
       break; 
      } 
     } 
    } 

    return item; 
} 

// Example: 
private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    if (TV.SelectedItem != null) 
    { 
     var container = FindTreeViewSelectedItemContainer(TV, TV.SelectedItem); 
     if (container != null) 
     { 
      container.IsSelected = false; 
     } 
    } 
}