我有两个菜单项元素 - "Undelete"和"Delete",它们具有互补的可见性:当显示一个时,另一个被隐藏.
在ViewModel的代码中,我有一个依赖属性FilesSelectedCanBeUndeleted,定义如下:
private bool _filesSelectedCanBeUndeleted;
public bool FilesSelectedCanBeUndeleted
{
get
{
return _filesSelectedCanBeUndeleted;
}
set
{
_filesSelectedCanBeUndeleted = value;
OnPropertyChanged("FilesSelectedCanBeUndeleted");
}
}
Run Code Online (Sandbox Code Playgroud)
Undelete按钮的XAML如下所示:
<MenuItem Header="Undelete" Command="{Binding UndeleteCommand }"
Visibility="{Binding Path=FilesSelectedCanBeUndeleted,
Converter={StaticResource BoolToVisConverter}}" >
Run Code Online (Sandbox Code Playgroud)
如您所见,Undelete的Visibility绑定到FilesSelectedCanBeUndeleted属性(在BooleanToVisibilityConveter的帮助下).
现在我的问题是,如何编写XAML以将Delete按钮的Visibility绑定到FilesSelectedCanBeUndeleted属性的"NOT"值?
谢谢,
以下是自定义IValueConverter的示例,它允许您反转可见性逻辑.基本上,当view-model属性为true时,一个MenuItem将可见,而另一个将被折叠.
所以你需要定义转换器的两个实例,如下所示:
<local:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<local:BooleanToVisibilityConverter x:Key="ReversedBooleanToVisibilityConverter" IsReversed="true" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |