Checkbox WPF数据触发器绑定不存在´;行不通

Checkbox WPF数据触发器绑定不存在´;行不通,checkbox,triggers,wpfdatagrid,Checkbox,Triggers,Wpfdatagrid,我希望在我的应用程序中有一个函数,比如如果选中了行中的第一个复选框,则必须启用同一行中的第二个复选框。另一种情况是,如果未选中第一个复选框,则必须禁用第二个复选框。为什么我对第一个复选框的绑定不起作用 XAML: 代码: 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用System.Threading.Tasks; 使用System.Windows; 使用System.Windows.Controls; 使用Syste

我希望在我的应用程序中有一个函数,比如如果选中了行中的第一个复选框,则必须启用同一行中的第二个复选框。另一种情况是,如果未选中第一个复选框,则必须禁用第二个复选框。为什么我对第一个复选框的绑定不起作用

XAML:


代码:

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Data;
使用System.Windows.Documents;
使用System.Windows.Input;
使用System.Windows.Media;
使用System.Windows.Media.Imaging;
使用System.Windows.Navigation;
使用System.Windows.Shapes;
命名空间WpfApplication1
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
列表数据=新列表();
对于(int i=0;i<5;i++)
{
data.Add(新GridItem()
{
Text=“项目”+i
});
data.Add(新GridItem()
{
Text=“ItemX”+i
});
}
this.dgGrid.ItemsSource=数据;
}
类GridItem
{
公共字符串文本
{
得到;
设置
}
}
 <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <DockPanel LastChildFill="True">
            <Button DockPanel.Dock="Bottom" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
            <DataGrid x:Name="dgGrid" ItemsSource="{Binding}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" DockPanel.Dock="Top" AutoGenerateColumns="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Text" Binding="{Binding Path=Text}" />
                      <DataGridTemplateColumn Header="Var.1">
                       <DataGridTemplateColumn.CellTemplate>
                         <DataTemplate>
                             <CheckBox x:Name="cb1" IsEnabled="True">
                            </CheckBox>
                        </DataTemplate>
                      </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
             <DataGridTemplateColumn Header="Var2">
              <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox x:Name="cb2">
                        <CheckBox.Style>
                            <Style TargetType="{x:Type CheckBox}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding ElementName=cb1}" Value="True">
                                        <Setter Property="IsEnabled" Value="True" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding ElementName=cb1}" Value="False">
                                        <Setter Property="IsEnabled" Value="False" />
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </CheckBox.Style>
                    </CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
            </DataGrid>
        </DockPanel>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            List<GridItem> data = new List<GridItem>();


            for (int i = 0; i < 5; i++)
            {
                data.Add(new GridItem()
                    {
                        Text = "Item " + i
                    });

                data.Add(new GridItem()
                    {
                        Text = "ItemX " + i
                    });

            }


            this.dgGrid.ItemsSource = data;
        }

  class GridItem
    {
        public string Text
        {
            get;
            set;
        }
    }