2011-06-07 161 views
2

我試圖在我的ViewModel屬性更改時觸發一個觸發器。無論我嘗試什麼,我似乎都無法觸發觸發器。我的XAML看起來像這樣:ViewModel屬性更改WPF DataTrigger

<TreeView.ItemContainerStyle> 
<Style TargetType="{x:Type TreeViewItem}"> 
    <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> 
    <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> 
    <Setter Property="Padding" Value="0 1" /> 
    <Setter Property="FontWeight" Value="Normal" /> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding IsExpanding}" Value="True"> 
      <Setter Property="Control.Template" Value="{StaticResource ResourceKey=loadingTreeViewItem}" /> 
     </DataTrigger > 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="FontWeight" Value="Bold" />        
     </Trigger> 
    </Style.Triggers> 
</Style> 

的IsExpanded和IsSelected綁定工作正常,但我不能讓DataTrigger火時IsExpanding是真實的。這些屬性位於相同的ViewModel中。我曾嘗試爲RelativeSource添加不同的變體,但沒有任何運氣。任何反饋意見。

回答

0

原來的觸發器正在工作。問題在於IsExpanding屬性和爲TreeView獲取數據的調用都發生在UI線程上。我通過電話獲取數據,並且所有事情都按預期工作