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