0
我有一個DataTemplate,它包含一個TextEdit(DevExpress組件)。我將三種類型加載到TextEdit中:字符串,整數和DateTime。 當TextEdit顯示日期時間時,我想使用轉換器。否則,TextEdit將顯示原始值(不帶轉換器)。也許我可以使用DataTrigger,當我的數據類型是DateTime時,使用Setter來設置DatetimeConverter。但是我怎麼能達到這個目標呢?我認爲,這很容易,但我不知道如何設置轉換器只適用於DateTimes。WPF Datatrigger設置StaticResource轉換器
UPDATE
<DataTemplate x:Key="DefaultTemplate">
<dxe:TextEdit Name="TxtNewValue" Grid.Column="0" Margin="0"
HorizontalAlignment="Stretch"
Text="{Binding TargetValue, UpdateSourceTrigger=PropertyChanged}"
Mask="{Binding TargetFieldDescription.fdValidateExp}"
Loaded="FocusTextEditOnLoad"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.Date}">
<Setter TargetName="TxtNewValue" Property="MaskType" Value="DateTime" />
</DataTrigger>
<DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.DatTime}">
<Setter TargetName="TxtNewValue" Property="MaskType" Value="DateTime" />
</DataTrigger>
<DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.Time}">
<Setter TargetName="TxtNewValue" Property="MaskType" Value="RegEx" />
</DataTrigger>
<DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.Num}">
<Setter TargetName="TxtNewValue" Property="MaskType" Value="RegEx" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
謝謝Yoav,是的,它的工作原理。我的意思是,我有一個ContentControl,這取決於我想使用帶有Converter或沒有Converter的TextBox的類型。 – MrScf
很高興我可以幫助:) – Yoav
但我只有且只有一個DataTemplate ...定義兩個DataTemplate更好也更容易:一個用Converter,另一個不用Converter,不是嗎? – MrScf