gpt4 book ai didi

c# - 在WPF TreeView (MVVM)中取消选择所选项目

转载 作者:行者123 更新时间:2023-12-03 10:51:46 41 4
gpt4 key购买 nike

当我选择一个节点\项目时,我正在使用WPF树 View 。当用户第二次单击所选节点时,我希望取消选择该节点\项目,即我应该能够获取该事件。如果我单击已选择的选定节点\项目,则不会调用IsSelected。我该如何工作?

<TreeView Grid.Column="0" Grid.Row="1" ItemsSource="{Binding source}" Name="mytreeview">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding displaytext}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

在我看来,我有
 public bool IsSelected
{
get
{
return _isSelected;
}
set
{
if (value != _isSelected)
{
_isSelected = value;
if (_isSelected)
{
//my logic
}

this.OnPropertyChanged("IsSelected");
}
}
}

最佳答案

当您选择新项目的IsSelected属性只改变。单击同一项目两次通常将无效。您将需要在TreeView上注册MouseDown事件,然后强制在后面的代码中取消选择该项。

关于c# - 在WPF TreeView (MVVM)中取消选择所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18136441/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com