eba*_*lga 4 wpf triggers styles
我正在绑定TreeView.我的理由是树视图级别0是不可选择的.当我单击0级treeviewitem时,必须折叠当前项目并且必须选择第一个子项目.
? Item 1 //<- level 0. this item must be unselectable
?? Child Item 11 //<- level 1
?? Child Item 12
? Item 2 //<- level 0. When i click this item, that is automatically collapse
?? Child Item 21
?? Child Item 22
Run Code Online (Sandbox Code Playgroud)
如何使用风格?
我会在我的视图模型中做到这一点.0级项目的视图模型将具有:
public bool IsSelected
{
get { return false; }
set
{
// error checking is omitted
Children[0].IsSelected = value;
// let WPF know that IsSelected may have changed from what it's expecting
this.Dispatcher.BeginInvoke((ThreadStart)delegate
{
this.OnPropertyChanged(() => this.IsSelected);
});
}
}
Run Code Online (Sandbox Code Playgroud)
你的XAML看起来像:
<TreeView>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
Run Code Online (Sandbox Code Playgroud)
现在,只要用户点击第一级项目,VM就会拒绝被选中,而是选择其第一个子项目.
您可以使用完全相同的技术来处理折叠级别的要求.