【发布时间】:2016-05-23 17:21:25
【问题描述】:
我的UserControl 上有几个控件使用相同的可见性绑定:
<UserControl x:Class="Whatever.MyClass"
x:Name ="TheUserControlName"
DataContext="MyUserControlViewModel">
<Label x:Name="MyLabel"
Visibility="{Binding SomeBoolean,
ConverterParameter={StaticResource BooleanToVisibilityConverter},
Converter={StaticResource BooleanValueInverter}}"
Style="{StaticResource LeftLabel}"
Content="Template _Name"
Target="{Binding ElementName=SomeTextBox}" />
</UserControl>
我尝试将绑定添加到UserControl.Resources 字典:
<Binding x:Key="IsCourseVisibilityBinding"
Path="Thing.SomeBoolean"
ConverterParameter="{StaticResource BooleanToVisibilityConverter}"
Converter="{StaticResource BooleanValueInverter}" />
...我得到错误:
无法在类型的“值”属性上设置“绑定” '字典入口'。 “绑定”只能设置在 DependencyObject 的 DependencyProperty`
...但后来我突然想到,也许我应该在资源字典中添加一个 Visibility 值...但我也无法让它工作。
如何重构可见性绑定,以便只定义一次?
【问题讨论】:
-
SomeBoolean 是我的 ViewModel 的一个只读属性。我已经为我的 UserControl 添加了一个名称。
-
在我看来,错误是说我正在尝试在 DictionaryEntry 上 设置绑定,即
UserControl.Resources集合
标签: c# wpf resourcedictionary