根据db中的值更改Binding的值

时间:2018-01-10 08:10:01

标签: wpf vb.net xaml

我的问题:如何检查绑定是否有值?并且基于该值,我该如何更改绑定的内容呢?

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。

3 个答案:

答案 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)