none
关于TreeView控件绑定之后更新的问题 RRS feed

  • 问题

  • 请问 tvFeature.ItemsSource = ft.Subcomponents;像这样绑定之后,如何实现对 ft的更改自动更新到tvFeature这个TreeView控件上,也就是说随之改变。好像DataGrid控件可以做到这点?谢谢。

    2010年3月26日 8:33

答案

  • 綁定的不能是List,用這種就可以在更新數據源時自動更新就TreeView上。

     public ObservableCollection<StuClass> Classes { get; set; }

    對於ItemsControl也可以使用ObservableCollection。

    • 已标记为答案 xmuczq 2010年3月29日 1:37
    2010年3月26日 9:18

全部回复

  • 綁定的不能是List,用這種就可以在更新數據源時自動更新就TreeView上。

     public ObservableCollection<StuClass> Classes { get; set; }

    對於ItemsControl也可以使用ObservableCollection。

    • 已标记为答案 xmuczq 2010年3月29日 1:37
    2010年3月26日 9:18
  • 綁定的不能是List,用這種就可以在更新數據源時自動更新就TreeView上。

     public ObservableCollection<Object> Items { get; set; }

    對於ItemsControl也可以使用ObservableCollection。

    2010年3月26日 9:18
  •    ft.Subcomponents[0].Icon = "Icon/warn.png";

    若要這句可以改變TreeView中的東西,需要實現INotifyPropertyChanged,這樣才能將Icon的改變通知到TreeView.譬如

    public class Component:INotifyPropertyChanged{

     public virtual event PropertyChangedEventHandler PropertyChanged;

     public virtual void OnPropertyChanged(string propertyName)
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
                }
            }

     

    private string _icon;

    public string Icon{

    get{return _icon;}

    set{

    _icon=value;

    OnPropertyChanged("Icon");

    }

    }

     

    }

    2010年3月29日 2:48
  • 恩,谢谢,问题已经搞定
    2010年4月2日 6:19