代码之家  ›  专栏  ›  技术社区  ›  Fermin

树视图中的子项未更新

  •  0
  • Fermin  · 技术社区  · 15 年前

    Checkboxes in a TreeView example .

    但是,如果父级被展开,它将不起作用。尽管基础数据列表已更新,但没有任何子项更新为在复选框中打勾。

    我的XAML如下:

    <sdk:HierarchicalDataTemplate x:Key="NodeTemplate" ItemsSource="{Binding Path=Contracts}">
        <StackPanel Orientation="Horizontal" ToolTipService.ToolTip="{Binding Path=Name}">
            <CheckBox IsTabStop="False" IsThreeState="{Binding Path=HasContracts}" IsChecked="{Binding Path=Selected, Mode=TwoWay}" Click="CheckBox_Click" />
            <TextBlock Text="{Binding Path=Name}" Tag="{Binding Path=ID}"/>
        </StackPanel>
    </sdk:HierarchicalDataTemplate>
    
        <sdk:TreeView x:Name="tvClientContract" ItemsSource="{Binding Path=ClientContracts, Mode=TwoWay}" ItemTemplate="{StaticResource NodeTemplate}"/>
    

    List<ClientContract> 并使用与链接示例中相同的代码隐藏。

    public int ID { get; set; }
    public string Name { get; set; }
    public List<ClientContract> Contracts { get; set; }
    public bool? Selected { get; set; }
    

    我怎样才能强迫孩子把自己重新画成底层呢

    2 回复  |  直到 15 年前
        1
  •  1
  •   Aymeric    15 年前

    如果您想使用INotifyPropertyChange(我所做的不是使用ObservaleCollection),下面是在ID元素上每个示例的操作方式:

    public class myclass : INotifyPropertyChanged
    {
        private int id_Value;
        public int ID
        {
            get { return id_Value; }
            set
            {
                id_Value = value;
                NotifyPropertyChanged("ID");
            }
        }
    
        public string Name { get; set; }
        public List<ClientContract> Contracts { get; set; }
        public bool? Selected { get; set; }
    
        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged(string name)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(name));
        }
    }
    

    如果这是你想做的,我希望这有帮助。

        2
  •  0
  •   Dan Auclair    15 年前

    尝试使用 ObservableCollection<ClientContract> 而不是 List<> . 通常,当数据是动态的时,您希望改为数据绑定到此集合类型,以便它可以通知UI集合的更改。

    推荐文章