如果通过数据绑定

时间:2018-07-03 20:40:37

标签: c# wpf xaml data-binding null

我的MainViewModel中有一个引用,该引用在运行时可以为null。在那种情况下,我希望按钮(WPF)禁用自身,并且如果该引用不再为null,则应该启用自身。我想通过数据绑定解决该任务,但是我不确定如何对数据绑定执行空检查。我的按钮:

<Button x:Name="SomeButton"   IsEnabled="{Binding Path=NullableProperty , Mode=OneWay}" />

2 个答案:

答案 0 :(得分:2)

您可以使用 DataTrigger

示例:

<Button Content="Click">
        <Button.Style>
            <Style TargetType="Button">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding CanContainNull}" Value="{x:Null}">
                        <Setter Property="IsEnabled" Value="False"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>

    </Button>

和ViewModel属性:

public string CanContainNull
{
    get
    {
        return _canContainNull;
    }
    set
    {
        _canContainNull = value;
        RaisePropertyChanged();
    }
}

答案 1 :(得分:-1)

仅注意到您可以将数据绑定的annotations设置为TargetNullValue,实际上可以完成所有操作。