【发布时间】:2017-09-05 03:06:21
【问题描述】:
我已将复选框的Checked 事件绑定到方法。我还通过转换器将两个命令参数传递给该方法(实现IMultiValueConverter)。在下面的代码中,两个CommandParameter 绑定的类型分别为bool 和string。
<CheckBox Name="cbTopLeftHeader" Content="Top Left Header">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding IncludeCheckedCommand}">
<i:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource MultiBindingConverter}" ConverterParameter="IncludeChecked">
<Binding ElementName="cbTopLeftHeader" Path="IsChecked"></Binding>
<Binding Source="{StaticResource TopLeft}"></Binding>
</MultiBinding>
</i:InvokeCommandAction.CommandParameter>
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
如果我换行,为什么会这样:
<Binding ElementName="cbTopLeftHeader" Path="IsChecked"></Binding>
与:
<Binding RelativeSource="{RelativeSource Self}" Path="IsChecked"></Binding>
在我的转换器中,IsChecked 参数从 bool 类型更改为 DependencyProperty (DependencyProperty.UnsetValue) 类型?
如何在不通过名称将元素绑定到自身的情况下传递Checked 属性?
【问题讨论】:
-
您没有绑定 CheckBox 的 CommandParamter 属性(例如 here),因此
RelativeSource Self不是 CheckBox。
标签: c# wpf multibinding relativesource