c# - 如何绑定到 WPF 中的 SelectedValue 数据上下文属性?
问题描述
我有一个显示一些模型项目的列表框。我想根据与所选列表框项关联的模型项的布尔值隐藏列表框下方的一些控件。
我尝试了以下但没有奏效:
1) 设置 ListBox SelectedValuePath="MyModelBooleanProperty"
2)向我要隐藏的控件添加数据触发器,如下所示
<DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="False">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="True">
<Setter Property="Visibility" Value="Visible"></Setter>
</DataTrigger>
解决方案
我用了这个,它奏效了。还要确保您没有明确设置Visibility
覆盖Style
所做的任何内容的 TextBlock。
<ListBox
x:Name="FolderList"
ItemsSource="{Binding Source={StaticResource ViewModel}, Path=List}"
SelectedValuePath="SomeBooleanProperty">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding SomeStringProperty}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
My Text Block
</TextBlock>
推荐阅读
- ios - CoreGraphics 之字形和 2 个 CGPoint 之间的哈希线
- elasticsearch - ELK Stack 中的基本身份验证
- reactjs - 如何使用“usestate”正确编写矩阵更新?
- python - CSES 问题集 Missing Number 中的运行时错误
- c# - 如何正确设置 ApplicationUser 和 FriendRequest 实体以允许级联删除
- mysql - Django object.raw('query') 不返回更新的查询集
- azure - Azure 认知搜索,如何配置分析器以支持“startsWith”?
- r - 将组大小添加到汇总表不再有效
- python - 为什么这显示 1 个文件下载但在 LibTorrent 中保存 2 个文件
- loops - 我希望它只循环一次