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...
8058 0
|
9月前
|
C# 数据库
WPF中DataGrid控件绑定数据源
WPF中DataGrid控件绑定数据源
118 0
|
C#
WPF更新绑定字段
WPF更新绑定字段
73 0
|
前端开发 C#
WPF 之 数据与命令绑定 (MVVM方式)
WPF 之 数据与命令绑定 (MVVM方式)
160 0
WPF 之 数据与命令绑定 (MVVM方式)
|
C#
WPF 绑定父类属性
原文:WPF 绑定父类属性 1.绑定父控件的属性. 1 2 3 4 5 6 7 8 9 发现问题,父控件的属性如果是后期加载的,别如说Width或者Height不是固定的数值,那么绑定时没有效果的。
1233 0
|
C# 前端开发
wpf中的datagrid绑定操作按钮是否显示或者隐藏
如图,需要在wpf中的datagrid的操作那列有个确认按钮,然后在某些条件下确认按钮可见,某些情况下不可见的,放在mvc里直接在cshtml页面中if..else就行了。 但是在wpf里不行。。网上搜索了好久才找到解决方法,原来只是binding那个visiable属性就行了,
6848 0
|
C# .NET 开发框架
WPF中使用ObjectDataProvider绑定方法
原文:WPF中使用ObjectDataProvider绑定方法    ObjectDataProvider提供了绑定任意.net类型的功能,具体功能如下: 1.ObjectDataProvider提供了绑定任意CLR类型的公嫩那个。
1246 0
|
C# 前端开发
WPF Image控件的绑定
原文:WPF Image控件的绑定      在我们平时的开发中会经常用到Image控件,通过设置Image控件的Source属性,我们可以加载图片,设置Image的source属性时可以使用相对路径也可以使用绝对路径,一般情况下建议使用绝对路径,类似于下面的形式Source="/Demo;Component/Images/Test.
1695 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个中的一个模式的,根据你的需要来选择,不选的话就会自动选择第五个的。
1098 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值。
1399 0