我想问为什么在使用RelativeSource={RelativeSource Self}时我总是获得null。
<TextBlock Tag="{Binding SomeValue}" Text="{Binding SomeValue, Mode=TwoWay, NotifyOnTargetUpdated=True, Converter={StaticResource enumConverter}, ConverterParameter={x:Type EnumModel:SomeEnum},UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TargetUpdated">
<i:InvokeCommandAction Command="{Binding DataContext.SomeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type v:MyView}}}"
CommandParameter="{Binding Tag, RelativeSource={RelativeSource Self}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBlock>我通过使用ElementName来解决这个问题,如下所示:
<TextBlock x:Name="txtSortDirection" Tag="{Binding SomeValue}" Text="{Binding SomeValue, Mode=TwoWay, NotifyOnTargetUpdated=True, Converter={StaticResource enumConverter}, ConverterParameter={x:Type EnumModel:SomeEnum},UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TargetUpdated">
<i:InvokeCommandAction Command="{Binding DataContext.SomeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type v:MyView}}}"
CommandParameter="{Binding Tag, ElementName=txtSortDirection}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBlock>但是我仍然想知道为什么当我使用RelativeSource={RelativeSource Self}时我会得到null
发布于 2018-09-14 03:22:14
RelativeSource={RelativeSource Self}用于获取此绑定属性属于元素作为绑定源。
只在UIElement.上工作的。
你试着在i:InvokeCommandAction in Trigger上使用它,但是它不是
顺便说一句:但是它能在DataTrigger上工作。
https://stackoverflow.com/questions/52306471
复制相似问题