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

标签 c# wpf mvvm treeview

当我选择一个节点\项目时,我正在使用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/

相关文章:

c# - webbrowser 不导航,如果你不看它

design-patterns - MVVM是哪种类型的设计模式?

c# - 如何将 Controller 用于局部 View ?

c# - 在 WebBrowser 的 html 代码中查找并单击没有 ID 的按钮

c# - 允许控制增长,但不要缩小

wpf - Snoop 使用什么技术来检查 WPF 应用程序

c# - 具有特定触发值的通用样式

model-view-controller - MVC、MVP 和 MVVM 有什么区别?

mvvm - 如何将ActiveX控件关联到事件/更改到我的ViewModel中?

c# - 按钮的工具提示