我需要将一个checkBox绑定到两个属性,并且我认为我必须使用multiBindings
到目前为止,我有这个,但是这个不起作用。
<CheckBox x:Name="FilterAll" Content="All">
<CheckBox.IsChecked>
<MultiBinding>
<Binding Path="SearchEngineCompassLogView.FilterSearch.IsFilterAllEnable"
Source="{StaticResource CompassLogView}">
</Binding>
<Binding Path="SearchEngineCompassLogView.FilterSearch.IsFilterVisible"
Source="{StaticResource CoreServiceLogView}">
</Binding>
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>使用MultiBinding可以做到这一点吗?
发布于 2013-03-08 03:23:21
您可以使用MultiBinding。正如伦理逻辑所说,你必须使用转换器来完成参数的实际逻辑(无论你想做AND,OR,无论什么。您可以查看有关这些here的更多信息
我不确定你想要影响你的checkbox的是什么,但最终它看起来会像这样。
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource MultiBoolConverter}">
<Binding Path="SearchEngineCompassLogView.FilterSearch.IsFilterAllEnable" Source="{StaticResource CompassLogView}"/>
<Binding Path="SearchEngineCompassLogView.FilterSearch.IsFilterVisible"
Source="{StaticResource CoreServiceLogView}"/>
</MultiBinding>
</CheckBox.IsChecked>还有另一种方法可以做到这一点,我有时会发现它很有用。它被称为DataTriggers。如果你对样式和模板做过任何工作,那么你可能以前见过它们。这是一个基于你的问题的例子:
<CheckBox>
<CheckBox.Style>
<Style TargetType={x:Type CheckBox}>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path="SearchEngineCompassLogView.FilterSearch.IsFilterAllEnable" Source="{StaticResource CompassLogView}" Value="True"/>
<Condition Binding="{Binding Path="SearchEngineCompassLogView.FilterSearch.IsFilterVisible" Source="{StaticResource CoreServiceLogView}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="CheckBox.IsChecked" Value="True"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>发布于 2013-03-08 02:55:48
必须在MultiBinding中指定转换器。Multibinding
https://stackoverflow.com/questions/15279388
复制相似问题