TreeView on Focus Leave - 禁用按钮

时间:2016-11-01 13:17:41

标签: c# wpf treeview

我正在尝试Button

    当选择Enabled中的节点时,
  1. 获取TreeViewDisabled中的某个节点失去焦点
  2. 时,
  3. 获取TreeView

    我的Form有两个TreeViews

    1. 包含图书的TreeView
    2. 包含贷款的TreeView
    3. 当其中一个人有当前选择时,我希望对方取消选择其项目。

      ComboBox中也有一个Form。 />
      TreeView贷款已选择项目时,我想按一个按钮返还此贷款。但是当我尝试按下按钮时它会被禁用,我无法与它进行交互。

      我试图像这样解决它:

      private void treeViewLoans_AfterSelect(object sender, TreeViewEventArgs e)
      {
          ReturnLoanButtonCheck();
      }
      
      private void treeViewLoans_Leave(object sender, EventArgs e)
      {
          treeViewLoans.SelectedNode = null;
          ReturnLoanButtonCheck();
      }
      
      private void ReturnLoanButtonCheck()
      {
          if (treeViewLoans.SelectedNode == null)
              buttonReturnLoan.Enabled = false;
          else if (treeViewLoans.SelectedNode != null)
              buttonReturnLoan.Enabled = true;
      }
      

      当我尝试按下按钮时,ComboBox会改为焦点。

      我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以将树视图按钮添加为子视图,如下所示:

<Window x:Class="TreeDemo.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:TreeDemo"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="172*"/>
        <ColumnDefinition Width="345*"/>
    </Grid.ColumnDefinitions>
    <TreeView>
        <TreeViewItem Header="Item 1">
            <Label Content="Invoce 1"/>
            <Button Content="Test 1" />
        </TreeViewItem>
        <TreeViewItem Header="Item 2">
            <Label Content="Invoce 2"/>
            <Button Content="Test2" />
        </TreeViewItem>
        <TreeViewItem Header="Item 3">
            <Label Content="Invoce 3"/>
            <Button Content="Test 3" />
        </TreeViewItem>
        <TreeViewItem Header="Item 3">
            <Label Content="Invoce 3"/>
            <Button Content="Test 3" />
        </TreeViewItem>
        <TreeViewItem Header="Item 3">
            <Label Content="Invoce 3"/>
            <Button Content="Test 3" />
        </TreeViewItem>
    </TreeView>
</Grid>

相关问题