2011-06-07 96 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线程上。我通过电话获取数据,并且所有事情都按预期工作