C# DataTrigger未启动
我在ViewModel中有一个类Person数组,我想在表中显示它们的名称。我还有一个带有复选框的列。这是我的观点部分:C# DataTrigger未启动,c#,wpf,xaml,data-binding,wpf-controls,C#,Wpf,Xaml,Data Binding,Wpf Controls,我在ViewModel中有一个类Person数组,我想在表中显示它们的名称。我还有一个带有复选框的列。这是我的观点部分: <Grid> <Grid.Resources> <Style x:Key="CheckBoxStyle" TargetType="{x:Type Control}"> <Setter Property="Visibility" Value="Visible"/>
<Grid>
<Grid.Resources>
<Style x:Key="CheckBoxStyle" TargetType="{x:Type Control}">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelectionAllowed}" Value="False">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<ListView ItemsSource="{Binding Persons}">
<ListView.View>
<GridView>
<GridViewColumn Width="40">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Style="{StaticResource CheckBoxStyle}"
.........................
.... some logic here ....
......................./>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="140"
Header="Number"
DisplayMemberBinding="{Binding Path=Name}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
我想根据
IsSelectionAllowed
boolean变量的值显示/隐藏复选框。为什么DataTrigger没有启动 假设IsSelectionAllowed是数据上下文上视图模型集的一个属性,您将需要一个相对源绑定-希望这在没有任何测试的情况下是正确的:
<DataTrigger Binding="{Binding Path=IsSelectionAllowed, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" Value="False">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
代码中IsSelectionAllowed的绑定与Person类型相关。代码看起来不错。是否正确设置视图/网格的数据上下文?有关任何绑定错误,请参见输出窗口。已设置数据上下文(Persons绑定工作正常)。IsSelectionAllowed是视图模型的属性还是Person类型的属性?