C# 数据绑定中的表达式。。。可能的如何?
我有一个集合数据绑定到C# 数据绑定中的表达式。。。可能的如何?,c#,silverlight,data-binding,windows-phone-7,C#,Silverlight,Data Binding,Windows Phone 7,我有一个集合数据绑定到列表框。我想做的是根据集合成员的某些属性是否存在来显示一些UI 例如: 然后: ... Visibility="{Binding has_foo}" ... 但要生成这些附加属性似乎有些尴尬 我想有更好的办法。有?你会怎么做 谢谢。创建一个值转换器。差不多 public class NullToVisibilityConverter : IValueConverter { public object Convert(object value, Type targe
列表框
。我想做的是根据集合成员的某些属性是否存在来显示一些UI
例如:
然后:
... Visibility="{Binding has_foo}" ...
但要生成这些附加属性似乎有些尴尬
我想有更好的办法。有?你会怎么做
谢谢。创建一个值转换器。差不多
public class NullToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
<YourUserControl.Resources>
<NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
</YourUserControl.Resources>
<ListBox ItemsSource="{Binding Stuff}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding foo}"
Visiblity="{Binding foo,
Converter={StaticResource NullToVisibilityConverter}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
然后添加如下内容
public class NullToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
<YourUserControl.Resources>
<NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
</YourUserControl.Resources>
<ListBox ItemsSource="{Binding Stuff}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding foo}"
Visiblity="{Binding foo,
Converter={StaticResource NullToVisibilityConverter}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
显然,我还没有实现ConvertBack(不确定您是否能够转换回来),但在这个例子中您不应该需要它。太棒了!我知道有这样的快乐,我只是不知道该找什么。谢谢我将尝试一下。IValueConverter在WP7操作系统中存在一些严重的性能问题。参考:PDC 2010 Windows phone 7会话
<YourUserControl.Resources>
<NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
</YourUserControl.Resources>
<ListBox ItemsSource="{Binding Stuff}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding foo}"
Visiblity="{Binding foo,
Converter={StaticResource NullToVisibilityConverter}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>