当绑定的视图模型为空时禁用菜单项
Disable menuitem when binded viewmodel is null
所以我有一个绑定到 ActiveDocument 的 MenuItem
。
<MenuItem Header="Save File" Command="{Binding ActiveDocument.SaveCommand}"/>
Enable/Disable 由 ViewModel 设置:
private bool CanSave(object parameter)
{
return IsDirty;
}
当我没有 ActiveDocument 时,如何将 MenuItem 默认设置为禁用?
您可以使用带有触发器的 Style
,只要 Command
将 MenuItem
的 IsEnabled
属性 设置为 false
属性 returns 一个 null
参考:
<MenuItem Header="Save File" Command="{Binding ActiveDocument.SaveCommand}">
<MenuItem.Style>
<Style TargetType="MenuItem">
<Style.Triggers>
<Trigger Property="Command" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</Trigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>
所以我有一个绑定到 ActiveDocument 的 MenuItem
。
<MenuItem Header="Save File" Command="{Binding ActiveDocument.SaveCommand}"/>
Enable/Disable 由 ViewModel 设置:
private bool CanSave(object parameter)
{
return IsDirty;
}
当我没有 ActiveDocument 时,如何将 MenuItem 默认设置为禁用?
您可以使用带有触发器的 Style
,只要 Command
将 MenuItem
的 IsEnabled
属性 设置为 false
属性 returns 一个 null
参考:
<MenuItem Header="Save File" Command="{Binding ActiveDocument.SaveCommand}">
<MenuItem.Style>
<Style TargetType="MenuItem">
<Style.Triggers>
<Trigger Property="Command" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</Trigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>