2015-08-16 61 views
1

我有以下情形:更改屬性不會影響實際的對象

<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> 

我有被綁定到某些數據的控制依賴項屬性。 在控件的XAML中,我有這個代碼,它必須從DependancyProperty中獲取數據並將其傳遞給控件的視圖模型。

我已經確定使用Multi Binding可以更容易地完成它。

問題是在我執行轉換器後控制ViewModel內的DataSet屬性沒有設置。

這裏的MultiBinding轉換器看起來像

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; 

} 

不MultiBinding創建我通過它,而不是與引用它的工作對象的副本?

編輯:

由轉換器內部直接分配DataContext.DataSet解決。

回答

1

它確實與參考一起工作。但就是這樣。您可以重新分配您的本地參考。而已。您當地的參考文獻是原始參考文獻副本的副本。

您將需要傳遞父級,然後設置DataSet屬性或調用DataSet的方法來執行所需的更改。

+0

工作,謝謝:)) – Hristo