我有一个属性,它是数据库数据类型(char
、DateTime
、int
、float
等等),我想要更改用于输入所选类型值的控件。因此,对于文本值,我想要一个 TextBox
,对于日期值,我想要一个 DatePicker
。
我考虑过一种方法,就是在我的表单上各放置一个控件,并使用适当的 IValueConverter
实现设置它们的 Visibility
。我知道这样做可以实现,但会产生很多代码,而且感觉不太好。
我考虑的另一种方法是使用 ContentPresenter
,并使用一个 Style
和 DataTriggers
设置它的内容,但我无法让它正常工作。
<Style x:Key="TypedValueHelper" TargetType="{x:Type ContentPresenter}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DataType}" Value="Char">
<Setter Property="Content" Value="???"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=DataType}" Value="Date">
<Setter Property="Content" Value="???"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=DataType}" Value="Integer">
<Setter Property="Content" Value="???"/>
</DataTrigger>
</Style.Triggers>
</Style>
如果有人能填补我的"???",或者提供更好的解决方案,请不要吝啬。