WPF绑定到控件上的布尔值
我想知道是否有人有一个简单简洁的解决方案来绑定一个依赖属性,它需要与属性相反。这里有一个例子 我有一个基于datacontext中的属性禁用的文本框,例如:WPF绑定到控件上的布尔值,wpf,binding,Wpf,Binding,我想知道是否有人有一个简单简洁的解决方案来绑定一个依赖属性,它需要与属性相反。这里有一个例子 我有一个基于datacontext中的属性禁用的文本框,例如: <TextBox IsEnabled={Binding CanEdit} Text={Binding MyText}/> 需求发生了变化,我希望将其设置为只读,而不是禁用,因此在不更改ViewModel的情况下,我可以执行以下操作: 在UserControl资源中: <UserControl.Resources>
<TextBox IsEnabled={Binding CanEdit} Text={Binding MyText}/>
需求发生了变化,我希望将其设置为只读,而不是禁用,因此在不更改ViewModel的情况下,我可以执行以下操作:
在UserControl资源中:
<UserControl.Resources>
<m:NotConverter x:Key="NotConverter"/>
</UserControl.Resources>
然后将文本框更改为:
<TextBox IsReadOnly={Binding CanEdit,Converter={StaticResource NotConverter}} Text={Binding MyText}/>
我个人认为这是非常冗长的
我希望能够做到这一点(注意!):
但唉,据我所知,这不是一个选择
我可以想出两个选择
- 创建一个附加属性
到IsNotReadOnly
(?)并绑定到该属性FrameworkElement
- 如果我更改ViewModel,那么我可以添加一个属性
和另一个属性CanEdit
,这让我有点尴尬,因为我相信它会向类添加一个不相关的属性,我认为这不是一个好的做法CannotEdit
<TextBox IsReadOnly={Binding !CanEdit} Text={Binding MyText}/>