我的问题:如何检查绑定是否有值?并且基于该值,我该如何更改绑定的内容呢?
Atm我设法获得了db中的值。但是我没有在第二列显示Mailaddress,而是想将值更改为f.e. “存在”或者如果数据库中有null
值为“不存在”。
XAML
<ListView x:Name="lstvw_test" Height="120" >
<ListView.View>
<GridView>
<GridViewColumn Header="Student" DisplayMemberBinding="{Binding ...}"/>
<GridViewColumn Header="Mailaddress" DisplayMemberBinding="{Binding ...}"/>
</GridView>
</ListView.View>
</ListView>
我无法弄清楚它是否可以仅在XAML中执行此操作,或者是否必须在我的代码中检查它(更喜欢XAML)。我正在使用VB.NET。
答案 0 :(得分:3)
使用DataTrigger可以实现纯XAML解决方案:
<GridView>
<GridViewColumn Header="Student" DisplayMemberBinding="{Binding Student}"/>
<GridViewColumn Header="Mailaddress">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="Exists"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Mailaddress}"
Value="{x:Null}">
<Setter Property="Text" Value="Does not exist"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
您可以添加另一个Value=""
的DataTrigger来检查空字符串。
答案 1 :(得分:1)
我会在视图模型中创建一个新的字符串属性,该属性将设置为&#34; exists&#34;或者&#34;不存在&#34;基于Mailaddress的价值。然后使用此属性进行列绑定。
答案 2 :(得分:1)
使用IValueConvertor实现它的方法之一
http://www.wpf-tutorial.com/data-binding/value-conversion-with-ivalueconverter/