C# 如果值通过数据绑定为空,则禁用按钮
我在我的C# 如果值通过数据绑定为空,则禁用按钮,c#,wpf,xaml,data-binding,null,C#,Wpf,Xaml,Data Binding,Null,我在我的MainViewModel中有一个引用,它在运行时可以为null。在这种情况下,我需要一个按钮(WPF)来禁用自身,如果该引用不再为null,它应该启用自身。我想用数据绑定解决这个任务,但我不确定如何在数据绑定中执行空检查。我的按钮: <Button x:Name="SomeButton" IsEnabled="{Binding Path=NullableProperty , Mode=OneWay}" /> 刚刚注意到,您可以将数据绑定的TargetNullValu
MainViewModel
中有一个引用,它在运行时可以为null。在这种情况下,我需要一个按钮(WPF)来禁用自身,如果该引用不再为null,它应该启用自身。我想用数据绑定解决这个任务,但我不确定如何在数据绑定中执行空检查。我的按钮:
<Button x:Name="SomeButton" IsEnabled="{Binding Path=NullableProperty , Mode=OneWay}" />
刚刚注意到,您可以将数据绑定的TargetNullValue
设置为false
,这实际上完成了所有操作。您可以使用数据触发器来完成此操作:
例如:
<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>
通常,您会将ICommand绑定到该按钮,并且当属性为null时,该命令将引发CanExecute=false。这会自动禁用按钮
public string CanContainNull
{
get
{
return _canContainNull;
}
set
{
_canContainNull = value;
RaisePropertyChanged();
}
}