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的方法来进行所需的更改