2009-11-23 340 views
2

我有一个ComboBox绑定到名为Property的ViewModel属性。DataTrigger无法正常工作

Property是一个TypeDescriptor。

当用户更改ComboBox中的值时,更新Property

在我想隐藏或使人们看到不同的控制UI:文本框,组合框,日期选择器等

问题是,在DataTrigger无法按预期工作。

<Style x:Key="textboxStyle" 
       TargetType="{x:Type TextBox}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=Property.PropertyType}" 
          Value="{x:Type Type={x:Type sys:String}}"> 
        <Setter Property="Visibility" 
          Value="Visible" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
+1

WPF无法知道PropertyType是否已更改。这不是DP。 – 2009-11-23 19:41:13

回答

0

您可能需要编写一个Converter,它在'Property'的值更改时被调用。该转换器可以是“可见性转换器的TypeDescriptior”。 上述不起作用的原因是因为'PropertyType'不触发INotifyPropertyChanged。