Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF绑定新复杂类型的多个属性_Wpf_Binding - Fatal编程技术网

WPF绑定新复杂类型的多个属性

WPF绑定新复杂类型的多个属性,wpf,binding,Wpf,Binding,在WPF中可以做类似的事情吗? 假设我有这样一门课: class Pair { public string A{get;set;} public string B{get;set;} } 属性A正确绑定,属性B正确绑定 <SomeControl Tag="{Pair A="{Binding Path=PropertyA}", B="{Binding Path=PropertyB}" /> 您可以将多重绑定与转换器一起使用: <SomeControl>

在WPF中可以做类似的事情吗? 假设我有这样一门课:

class Pair
{
    public string A{get;set;}
    public string B{get;set;}
}
属性A正确绑定,属性B正确绑定

<SomeControl Tag="{Pair A="{Binding Path=PropertyA}", B="{Binding Path=PropertyB}" />

您可以将
多重绑定
与转换器一起使用:

<SomeControl>
    <SomeControl.Tag>
        <MultiBinding Converter="{StaticResource pairConverter}">
            <Binding Path="A" />
            <Binding Path="B" />
        </MultiBinding>
    </SomeControl.Tag>
</SomeControl>
public class PairConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        if (values.Length == 2)
        {
            return new Pair { A = (string)values[0], B = (string)values[1] };
        }
        return Binding.DoNothing;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        Pair p = (Pair)value;
        return new object[] { p.A, p.B };
    }
}