WPF treeivew 数据绑定解决思路

WPF treeivew 数据绑定
数据已更改,界面没变化。
XAML.

 <UserControl.DataContext  >    
        <local:RegionTreeListViewModel />       在这里绑定VIEWMODEL
    </UserControl.DataContext>

  <TreeView Name="regionTree" ItemsSource="{Binding TreeViewList}">
            <TreeView.ItemContainerStyle>
                <Style TargetType="TreeViewItem">
                    <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode= OneWay}"></Setter>
                </Style>
            </TreeView.ItemContainerStyle>
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate DataType="{x:Type local:TreeViewModel}"  ItemsSource="{Binding Children}">
                    <StackPanel  Margin="-2,0,0,0" Orientation="Horizontal" x:Name="staTree"  >
                    <CheckBox  Style="{x:Null}"  IsChecked="{Binding IsChecked, Mode=TwoWay}"  VerticalAlignment="Center" Visibility="{Binding CheckBoxVisible}" />
                    <StackPanel Orientation="Horizontal" ToolTip="{Binding ToolTip}">
                            <Image VerticalAlignment="Center"  Source="{Binding Icon}" Visibility="{Binding ImageVisible}" Width="16" Height="16" ></Image>
                        <TextBlock Text="{Binding Name}" x:Name="txt"  VerticalAlignment="Center"></TextBlock>
                    </StackPanel>
                </StackPanel>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>

   <Button Content="{Binding BtName}" Grid.Row="1" Command="{Binding BtCmd}"></Button> 测试,这个绑定没问题

ViewModel.

 public List<TreeViewModel> TreeViewList
        {
            get
            {
                return _treeList;
            }
            set
            {
                _treeList = value;
                this.RaisePropertyChanged("TreeViewList");
            }
        }

treeview打开的时候,是可以显示数据,但是VIEWMODEL里的TreeViewList已改变,但界面没变化,
为了对比,我用了个BUTTON,  这个BUTTON绑定就没问题。

------解决方案--------------------
是否先.Items.Clear();//先清理一下节点  ,在做绑定。
------解决方案--------------------
list换成 ObservableCollection
------解决方案--------------------
引用:
没人搞WPF吗?

把 你的ViewModel 继承自INotifyPropertyChanged接口,并实现其中的方法。

public event PropertyChangedEventHandler PropertyChanged;
        public void OnChangedProperty(string name)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(name));
            }