樣式我對WPF中風格的數據綁定的問題。WPF數據綁定,並與MVVM
基本設置是這樣的:
<Style x:Key="{x:Type eo:Player}" TargetType="{x:Type eo:Player}">
<Style.Triggers>
<DataTrigger Binding="{Binding Team}" Value="A">
<Setter Property="Template" Value="{StaticResource TeamATemplate}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
樣式應用於類型球員的所有對象。這些對象具有Teams類型的屬性(Enum具有值A,B和C)。根據球員在模板中應用的視覺化球隊的不同而有所不同。
,現在出現的問題是,整個事情是在MVVM應用程序中使用,並且以某種方式播放器對象的DataContext獲取設置爲最頂層的視圖的視圖模型。我使用了新的診斷選項(的TraceLevel)找出一些有關的問題,並得到這個:
System.Windows.Data Warning: 66 : BindingExpression (hash=30607723): Found data context element: Player (hash=35170261) (OK)
System.Windows.Data Warning: 74 : BindingExpression (hash=30607723): Activate with root item ToolboxViewModel (hash=61398511)
System.Windows.Data Warning: 104 : BindingExpression (hash=30607723): At level 0 - for ToolboxViewModel.Team found accessor <null>
所以基本上玩家找到對象作爲數據上下文元素(知道是什麼意思),但仍使用ToolboxViewModel作爲DataContext。我怎樣才能解決這個問題?如何在綁定表達式中引用樣式化對象?
問題仍然存在完美的罰款。整件事的原因是(至少這是我最好的猜測),其在DataContext是從父用戶控件繼承,因此,結合嘗試找到在用戶控件的DataContext的團隊屬性(又名ToolboxViewModel)。問題是我需要以某種方式引用綁定中的樣式對象。 – chrischu 2009-09-28 13:49:50