触发布尔值不起作用

时间:2014-07-21 15:53:58

标签: wpf

我正在尝试在ListView中显示一个值,具体取决于布尔值的状态,但它不起作用。你能告诉我我做错了什么吗?

<ListView x:Name="LiViTest" Grid.ColumnSpan="4" Margin="0,0.01,0,0" Grid.Row="1" SelectionMode="Single">
    <ListView.View>
        <GridView>
            <GridViewColumn Header=" numb " >
            <GridViewColumn.CellTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                <TextBlock x:Name="TxtTest" />
                </StackPanel>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding Path=boolTest}">
                        <DataTrigger.Value>
                            <sys:Boolean>False</sys:Boolean>
                        </DataTrigger.Value>
                        <Setter TargetName="TxtTest" Property="Text" Value="test false"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Path=boolTest}">
                        <DataTrigger.Value>
                            <sys:Boolean>True</sys:Boolean>
                        </DataTrigger.Value>
                        <Setter TargetName="TxtTest" Property="Text" Value="test true"/>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate> 
            </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

1 个答案:

答案 0 :(得分:1)

您的代码运行正常,或者如果您拥有正确的数据结构,它可以正常工作。要使此功能正常,boolTest属性必须是bool 中项目的GridView属性

或者,如果您尝试将数据绑定到位于外部 boolTest的单个GridView属性,那么您将需要使用不同的{{1} }}。但是,这实际上取决于您设置Binding的方式。

假设您的某个类的实例已将所需的DataContext属性设置为boolTest,则可以使用Window.DataContext来访问它:

RelativeSource Binding