【发布时间】:2020-12-10 10:13:44
【问题描述】:
我想使用两个属性值来定义一个元素是否启用。
到目前为止,以下行决定启用/禁用一个元素。 IsEnabled 是根据
绑定到someContext.SomeObject.Count
<ToggleButton Style="{StaticResource CheckButtonStyle}" Margin="1"
IsChecked="{Binding Path=someContext[3], ElementName=MyElementName, IsAsync=True}"
IsEnabled="{Binding Path=someContext.SomeObject.Count, ElementName=MyElementName, Converter={StaticResource MyConverter}, ConverterParameter=3}" />
我将转换器更改为 IMultiValueConverter 并且 我将 XAML 更改为以下内容:
<ToggleButton Style="{StaticResource CheckButtonStyle}" Margin="1"
IsChecked="{Binding Path=someContext[3],
ElementName=MyElementName, IsAsync=True}">
<ToggleButton.IsEnabled>
<MultiBinding Converter="{StaticResource MyMultiValueConverter}" ConverterParameter="3">
<Binding Path="{someContext.SomeObject.Count}"/>
<Binding Path="{IsConditionFullfilled}/>
</MultiBinding>
</ToggleButton.IsEnabled>
</ToggleButton>
但是在第一个版本中,大括号内的绑定被识别, 但在第二个版本中,我得到了:
“未找到类型'someContext'。验证您没有丢失 一个程序集引用,并且所有引用的程序集都已构建。”
我认为<ToggleButton.IsEnabled></ToggleButton.IsEnabled> 无法访问与其父级<ToggleButton /> 相同的命名空间
我该如何解决这个问题?
【问题讨论】:
-
去掉名称周围的花括号,例如:
<Binding Path="someContext.SomeObject.Count"/>。
标签: c# wpf xaml data-binding