首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF CheckBox multiBinding

WPF CheckBox multiBinding
EN

Stack Overflow用户
提问于 2013-03-08 02:53:43
回答 2查看 7.2K关注 0票数 2

我需要将一个checkBox绑定到两个属性,并且我认为我必须使用multiBindings

到目前为止,我有这个,但是这个不起作用。

代码语言:javascript
复制
<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可以做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-08 03:23:21

您可以使用MultiBinding。正如伦理逻辑所说,你必须使用转换器来完成参数的实际逻辑(无论你想做AND,OR,无论什么。您可以查看有关这些here的更多信息

我不确定你想要影响你的checkbox的是什么,但最终它看起来会像这样。

代码语言:javascript
复制
<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。如果你对样式和模板做过任何工作,那么你可能以前见过它们。这是一个基于你的问题的例子:

代码语言:javascript
复制
<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>
票数 6
EN

Stack Overflow用户

发布于 2013-03-08 02:55:48

必须在MultiBinding中指定转换器。Multibinding

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15279388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档