根据这篇文章,我正在使用一些多触发器。绑定和错误如下。
我正在使用自定义标记扩展来显示资源图像,所以它可能是可疑的,但我不这么认为,因为我以前在样式中使用过它。
错误消息说我为该类型应用了错误的属性,但我还不明白为什么。
干杯,
贝里尔
触发器
<Style x:Key="AvatarPathImageStyle" TargetType="{x:Type Image}">
<Setter Property="Source" Value="{Binding AvatarPath}"/>
<Setter Property="Height" Value="96"/>
<Setter Property="Width" Value="96"/>
<Setter Property="Stretch" Value="UniformToFill"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding AvatarPath}" Value="{x:Null}" />
<Condition Binding="{Binding Gender}" Value="{x:Static domain:Gender.Female}"/>
</MultiDataTrigger.Conditions>
<Setter Property="Source" Value="{resx:Resx ResxName=Smack.Parties.Presentation.Resources.PersonDetailView, Key=Img_Female}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding AvatarPath}" Value="{x:Null}" />
<Condition Binding="{Binding Gender}" Value="{x:Static domain:Gender.Male}"/>
</MultiDataTrigger.Conditions>
<Setter Property="Source" Value="{resx:Resx ResxName=Smack.Parties.Presentation.Resources.PersonDetailView, Key=Img_Male}"/>
</MultiDataTrigger>
</MultiDataTrigger>
</Style.Triggers>
</Style>
捆绑
<Image Grid.Column="1" Grid.Row="4"
HorizontalAlignment="Center" Margin="10, 0" Style="{StaticResource AvatarPathImageStyle}"
/>
错误
System.Windows.Markup.XamlParseException occurred
... InnerException: System.ArgumentException
Message='System.Windows.Controls.Image' is not a valid value for the 'System.Windows.Controls.Image.Source' property on a Setter.
...
更新
静态访问图像也会得到 Invalid Type 错误:
<Setter Property="Source" Value="{x:Static imgResources:PersonDetailView.Img_Female}"/>