2011-10-21 131 views
0

內另一個目的考慮以下所示上的數據上下文屬性綁定到包含在數據上下文

class MyViewModel 
{ 
    public bool IsSelected {get;set;} 
} 

class SomeClass 
{ 
    public bool IsSelected {get;set;} 
    public object Data {get;} 
} 

<DataTemplate x:Key="ItemTemplate> 
    <Image ... /> 
</DataTemplate> 

<SomeControl ItemsSource={Binding MyViewModels}" 
      ItemTemplate={StaticResource ItemTemplate}" /> 

的類場景SomeControlSomeClass是我不能修改第三方類。在內部,SomeControl創建的SomeClass情況下,我的視圖模型分配給它的Data財產。所以,我的ItemTemplate的數據上下文爲SomeClass

我想在IsSelected財產上SomeClass結合的MyViewModelIsSelected財產。我怎麼做?

+0

你在哪裏存儲MyViewModel的實例?此外,如果它不是設置爲DataContext的,它不是一個真正的視圖模型... –

+0

正如我已經說過,MyViewModel的實例被分配給某個類的數據屬性。而它在我的掌握,其第三部分控件做到這一點。 – Rishabh

回答

0

首先,我會考慮拋棄第三方控件,做了這樣的賠率與ItemsControl如何正常工作。你的數據上下文應該是你的視圖模型。期。

這就是說,你應該能夠解決它,如果該項目容器是SomeClass這樣的:

<SomeControl ...> 
    <SomeControl.ItemContainerStyle> 
     <Style TargetType="SomeClass"> 
      <Setter Property="IsSelected" Value="{Binding Data.IsSelected, Mode=TwoWay}"/> 
     </Style> 
    </SomeControl.ItemContainerStyle> 
</SomeControl> 
相關問題