這裏是僞代碼爲我想在XAML實現DataTrigger使用
IF vm.AvatarFilePath IS NOT NULL THEN
Image.Source = {Binding AvatarPath}
ELSE
If vm.Gender == {x:Static vm:Gender.Female} THEN
Image.Source = {StaticResource Img_Female}
ELSE
Image.Source = {StaticResource Img_Male}
ENDIF
ENDIF
以下是一個實現企圖至少以下問題:
- 它是如何知道AvatarPath是零,我們關心性別?
- 有沒有辦法做別的,所以我只能一次,而不是每一次爲
我怎樣才能正確地實現這個指定Gender.Male資源?
乾杯,
Berryl
XAML嘗試1
<DataTemplate x:Key="AvatarPathTemplate">
<Image x:Name="avatarImage" Source="{Binding AvatarPath}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Female}">
<Setter Property="Sourrce" Value="{resx:Resx Img_Female}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Male}">
<Setter Property="Sourrce" Value="{resx:Resx Img_Male}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Unknown}">
<Setter Property="Sourrce" Value="{resx:Resx Img_Male}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Unspecified}">
<Setter Property="Sourrce" Value="{resx:Resx Img_Male}"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
更新
由於trimeyko指出,這可以被要麼多轉換或視圖模型的內部完成。
根據我的回答:「我實際上首先嚐試了multiconverter方法,並取得了一定的成功,並且差不多發佈了這個方法來幫助清理它,然後我決定轉換器最好留待實際轉換類型。的方法可能是最簡單的,但這看起來更像是視圖的工作,我想看看我能否首先將它變成現實。「
我做了我在(MultiConverter usage)
是的,這是我認爲應該是修復。我有一個問題,我作爲一個[單獨的問題在這裏](http://stackoverflow.com/questions/10639274/datatrigger-error)。你能看看那個嗎? – Berryl
我想,即使它總是Img_Male,除非它實際上是女性,否則是沒有辦法重複每個性別值的條件。乾杯 – Berryl
@Berryl應該有可能 - 看我的更新 –