WPF—多重绑定和跨层级绑定

简介: WPF—多重绑定和跨层级绑定
<!--树节点展开属性由多个因素决定,故而采用多重绑定 --> 
<Setter Property="IsExpanded">
    <Setter.Value>
        <MultiBinding Converter="{StaticResource EnableConverter}" UpdateSourceTrigger="PropertyChanged">
            <!--指定绑定的ItemSource,而非默认的treeView ItemSource --> 
            <Binding RelativeSource="{RelativeSource AncestorType=Window}" Path="DataContext.Criteria"/>
            <Binding Path="SubNodes"/>
        </MultiBinding>
    </Setter.Value>
</Setter>
 <TextBlock  Grid.Row="5" Grid.Column="3">
  <TextBlock.IsEnabled>
    <MultiBinding Converter="{StaticResource MultiStringStateConverter}">
        <Binding Path="ZfMuscle"/>
        <Binding Path="ZfResult"/>
    </MultiBinding>
  </TextBlock.IsEnabled>
 </TextBlock>
// 继承IMultiValueConverter接口
public class EnableConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        var node = (Node)values[0];// 对应第一个绑定
        var index = (int)values[1];// 对应第二个绑定
        // do something
    }
    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

参考资料:

Binding a property with a different ItemSource WPF C#

相关文章
|
C# 数据格式 XML
WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)
原文:WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树) 一、WPF对象级(Window对象)资源的定义与查找 实例一: StaticR...
8355 0
|
C# 数据库
WPF中DataGrid控件绑定数据源
WPF中DataGrid控件绑定数据源
155 0
|
C#
WPF更新绑定字段
WPF更新绑定字段
96 0
|
前端开发 C#
WPF 之 数据与命令绑定 (MVVM方式)
WPF 之 数据与命令绑定 (MVVM方式)
189 0
WPF 之 数据与命令绑定 (MVVM方式)
|
C#
WPF 绑定父类属性
原文:WPF 绑定父类属性 1.绑定父控件的属性. 1 2 3 4 5 6 7 8 9 发现问题,父控件的属性如果是后期加载的,别如说Width或者Height不是固定的数值,那么绑定时没有效果的。
1266 0
|
C# 前端开发
wpf中的datagrid绑定操作按钮是否显示或者隐藏
如图,需要在wpf中的datagrid的操作那列有个确认按钮,然后在某些条件下确认按钮可见,某些情况下不可见的,放在mvc里直接在cshtml页面中if..else就行了。 但是在wpf里不行。。网上搜索了好久才找到解决方法,原来只是binding那个visiable属性就行了,
6887 0
|
C#
【WPF】绑定Hyperlink超链接
原文:【WPF】绑定Hyperlink超链接 Hyperlink超链接的简单使用 前台XAML: 说明文字: www.baidu.com 后台代码实现点击超链接的逻辑: private void Hyper...
1401 0
|
C#
WPF的5种绑定模式(mode)
原文:WPF的5种绑定模式(mode) WPF的绑定模式(mode)是枚举的 枚举值共有5个 1:OneWay(源变就更新目标属性) 2:TwoWay(源变就更新目标并且目标变就更新源) 3:OneTime(只根据源来设置目标,以后都不会变) 4:OneWayToSource(与OneWay相反) 5:Default(可以单向或双向,是靠被值定的源或目标是否有get或set来指定的) 所以绑定的话是需要选上面5个中的一个模式的,根据你的需要来选择,不选的话就会自动选择第五个的。
1154 0
|
C# .NET 开发框架
WPF笔记 ( xmlns引用,Resource、Binding 前/后台加载,重新绑定) 2013.6.7更新
原文:WPF笔记 ( xmlns引用,Resource、Binding 前/后台加载,重新绑定) 2013.6.7更新 1、xmlns Mapping URI的格式是 clr-namespace:[;assembly=] (1)如果自定义类和XAML处在同一个Assembly之中,只还需要提供clr-namespace值。
1441 0
|
C#
潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据
原文:潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据 目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中一种绑定方法,后面多几列其他属性都没关系,例如多个字段, 1  A  0 2  B  0 3  C  0 4  D  1 5  E  2 6  F  4 7  G 1 .
2359 0