我想根据绑定设置TextBox元素的可见性 例: 包含两种产品价格值的TextBoxes
<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding PriceProduct0, Mode=TwoWay}" />
<TextBox Grid.Column="2" Grid.Row="3" Text="{Binding PriceProduct1, Mode=TwoWay}" />
在我的模型中,我从WCF服务查询必要的值并调用NotifyPropertyChanged来更新我的视图。
问题:在某些情况下,我的属性没有值。在这种情况下,我想隐藏UI元素。有没有一种简单的方法,也许通过举办活动?
大多数属性是double或boolean,所以我不能将它们设置为NULL。
解决方案:
感谢Ahmed和DHN,我找到了解决办法!
这里所有步骤:
public double? PriceProduct0
Microsoft.TeamFoundation.Controls.WPF.Converters
:<VSHome>\Common7\IDE\PrivateAssemblies\Microsoft.TeamFoundation.Controls.dll
xmlns:myConverters="clr-namespace:Microsoft.TeamFoundation.Controls.WPF.Converters;assembly=Microsoft.TeamFoundation.Controls"
添加到<Page>
属性<Page.Resources>
<myConverters:NullToVisibleConverter x:Key="NullToVisibleConverter" />
</Page.Resources>
<TextBox>
属性:Visibility="{Binding PriceProduct0, Converter={StaticResource NullToVisibleConverter}, ConverterParameter='invert' }"
答案 0 :(得分:4)
您可以使用null来查看转换器。见link
<TextBox Text="{Binding PriceProduct0}" Visibility="{Binding PriceProduct0, Mode=TwoWay, Converter={StaticResource NullToVisibilityConverter}}"/>
答案 1 :(得分:1)
没有比这更容易了。只需NullToVisibleConverter
并将其绑定到UI元素的Visibility
属性。 E.g。
<Window>
<Window.Resources>
<NullToVisibleConverter x:Key="Null2VisConv"/>
</Window.Resources>
<TextBox Visibility="{Binding PriceProduct0, Converter={StaticResource Null2VisConv}}" .../>
</Window>