C#中的表单上有一个treeView。它的checkBox属性为true,用户可以检查每个节点的复选框。当用户单击某个节点时,它将被选中,我想禁用此属性。我的意思是用户只需检查复选框,当他/她点击节点时就不能选中它。我怎么能这样做?
答案 0 :(得分:1)
通过defult就是这样,用户无法选择Node但只能通过双击扩展。可以选中复选框
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<CheckBox x:Name="cbTree" IsChecked="{Binding Checked}" Checked="" Loaded="">
<TextBlock x:Name="txtTree" Text="{Binding Name}"></TextBlock>
</CheckBox>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
你想让它不被聚焦(突出显示)吗?
然后添加此
<TreeView Name="MyTreeview" ..... >
<TreeView.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}"
Color="Black" />
</TreeView.Resources>
</TreeView>
答案 1 :(得分:-1)
我找到的最简单方法是:
private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = true;
}
在TreeView的BeforeSelelect事件中,我们必须使Cancel属性为真。