Вот псевдо-код для того, что я хочу реализовать в XAMLDataTrigger Использования
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 было нуль и что мы заботимся о гендерном вопросе?
- есть способ сделать ELSE, так что я могу указать Gender.Male ресурс только один раз, а не один раз для
Как я могу осуществить это правильно?
Cheers,
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 или внутри модели представления.
В ответ на мой ответ: «Сначала я попытался использовать мультиконвертерный подход с небольшим успехом и почти опубликовал его, чтобы помочь его очистить. Затем я решил, что конвертеры лучше всего использовать для преобразования типов. подход, вероятно, самый простой, но это, похоже, больше похоже на работу вида, и я хотел бы посмотреть, смогу ли я заставить его работать как таковой в первую очередь ».
я сделал попытку [решить это с mutliConveter проводкой здесь] (MultiConverter usage)
Да, это то, что я думаю, должно быть исправление. У меня проблема, которую я сделал как [отдельный вопрос здесь] (http://stackoverflow.com/questions/10639274/datatrigger-error). Можете ли вы посмотреть на это? – Berryl
Я полагаю, что нет пути повторения условий для каждого гендерного значения, даже если он всегда будет Img_Male, если он на самом деле не является женщиной, да? Cheers – Berryl
@Berryl это должно быть возможно - см. Мое обновление –