<Setter Property="IsExpanded">
<Setter.Value>
<MultiBinding Converter="{StaticResource EnableConverter}" UpdateSourceTrigger="PropertyChanged">
<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>
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];
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
参考资料:
Binding a property with a different ItemSource WPF C#