C# 在多重绑定中更改属性不会';不要影响实际对象

C# 在多重绑定中更改属性不会';不要影响实际对象,c#,wpf,xaml,C#,Wpf,Xaml,我有以下情况: <Setter Property="ItemsSource"> <Setter.Value> <MultiBinding Converter="{StaticResource itemsSourceConv}" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"> <Binding Path="DataSource" RelativeSou

我有以下情况:

<Setter Property="ItemsSource">
    <Setter.Value>
        <MultiBinding Converter="{StaticResource itemsSourceConv}" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
            <Binding Path="DataSource" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=UserControl}"></Binding>
            <Binding Path="DataSet" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay"></Binding>
        </MultiBinding>
    </Setter.Value>
</Setter>

我在绑定到某些数据的控件上有一个dependency属性。 在控件的XAML中,我有一段代码,它必须从DependencyProperty获取数据并将其传递给控件的视图模型

我已经决定使用多重绑定对我来说会更容易

问题是在我执行转换器后,没有设置控件ViewModel中的DataSet属性

下面是多重绑定转换器的外观

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
    var dataFromWindow = values[0] as List<object>;
    var controlViewModel = values[1];
    controlViewModel = dataFromWindow ; //After execution this object is changed but the object that values[1] references in the viewmodel isn't changed.
    return dataFromWindow;

}
公共对象转换(对象[]值,类型targetType,对象参数,CultureInfo区域性) { var dataFromWindow=列表中的值[0]; var controlViewModel=值[1]; controlViewModel=dataFromWindow;//执行后,此对象会更改,但值[1]在viewmodel中引用的对象不会更改。 从窗口返回数据; } 多重绑定是否创建了我传递的对象的副本而不使用对它的引用

编辑:


通过在转换器内直接分配DataContext.DataSet解决。

它与引用一起工作。但就是这样。您重新分配了本地引用。没别的了。您的本地参考是原始参考的副本

您将需要传递父对象,然后设置DataSet属性或调用DataSet的方法来进行所需的更改