我有一個屬性是數據庫數據類型(char,datetime,int,float等等),我想改變用於輸入值的控件的選定類型。所以對於文本值我想要一個TextBox
和日期值我想DatePicker
。動態顯示一個控件取決於綁定屬性使用WPF
我想過這樣做的一種方法是讓我的表單上的每個控件都有一個,並使用適當的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>
如果有人可以填寫我的「???」或者提供更好的解決方案,請做。
你可以在現階段分享你的代碼嗎? – ThomasAndersson 2010-05-26 11:39:28
我不確定我可以分享我的代碼,因爲有很多依賴關係。事實上,我的實際問題比我放慢了一點。我敢肯定你的解決方案將爲我工作我剛剛遇到了一個問題,我試圖將ContentControl的內容設置爲{Binding}而不是{Binding MyValue},這意味着WPF會爲我的ViewModel加載視圖在內容控制中,遞歸地繼續前進... – 2010-05-26 11:54:52
啊我明白了。你嘗試過{Binding Path =。}嗎? – ThomasAndersson 2010-05-26 12:11:54