Har*_*rry 23 c# silverlight wpf datacontext binding
我的视图模型中有一个对象,它有一堆属性,其中一些偶尔会为null.如果这些特定控件为null,我不想只显示一些控件.如果绑定为null,我将如何隐藏控件?我在想某种转换器,但不知道我是怎么做的.有任何想法吗?
编辑:对不起,我应该提一下,这也将在Silverlight中,所以我不确定Style触发器是否会起作用......?
bug*_*ixr 37
这种方法更容易:
<CheckBox Visibility="{Binding Path=checkedField, TargetNullValue=Collapsed }">
Run Code Online (Sandbox Code Playgroud)
当bound属性checkedField
为null时,Visibility将设置为Collapsed.
Pri*_*aka 26
有一个如下的转换器,
public sealed class NullToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null ? Visibility.Hidden: Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
现在,也可以使用Visibility属性绑定该属性.喜欢,
<ListBox ItemsSource="{Binding Path=Squad}"
Visibility="{Binding Converter={StaticResource nullToVisibilityConverter},
Path=Squad}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
我还需要一个WindowsPhone WinRT应用程序.我最终使用@PrinceAshitaka的转换器,对绑定进行了一些小修改,如同对类似问题的回答中所建议的那样
您应该使用FallbackValue=Collapsed
以避免在datacontext为null时精确显示控件.不知道为什么TargetNullValue=Collapsed
不适合我.
Visibility="{Binding Converter={StaticResource NullToVisibilityConverter}, FallbackValue=Collapsed}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16028 次 |
最近记录: |