Tag プロパティを Binding のソースとして使用しようとしていますが、コンバーターに到達すると値が null になります。
私は何を間違っていますか?
消費者
<Button Style="{StaticResource AddNewItemButtonStyle}" Tag="blah" />
バインディング
<Style x:Key="AddNewItemButtonStyle" BasedOn="{StaticResource blueButtonStyle}"
TargetType="{x:Type Button}">
...
<AccessText Text="{Binding RelativeSource={RelativeSource Self},
Path=Tag, Converter={StaticResource AddNewItemForLabel}}">
</Style>
アップデート
同じ戦略を使用してToolTipのセッターを追加しましたが、それはコンバーターへの2回目の呼び出しの後にのみ機能します(マウスオーバーによってトリガーされます)。
最初のパスでバインドが機能しない理由がわかりますか?
Tag 以外に、より確実に使用できる場所はありますか?
2回目の更新
Phil の入力に基づいて、スタイルを以下の xaml に変更しました。テンプレート プロパティをスタイルに追加する必要がありますか?
<Style x:Key="AddNewItemButtonStyle" BasedOn="{StaticResource blueButtonStyle}" TargetType="{x:Type Button}">
<Setter Property="resx:ResxExtension.DefaultResxName" Value="Smack.Core.Presentation.Resources.MasterDetail"/>
<Setter Property="Content" >
<Setter.Value>
<StackPanel Orientation="Horizontal">
<Image Source="{resx:Resx ResxName=Smack.Core.Presentation.Resources.MasterDetail, Key=bullet_add}" Stretch="Uniform" />
<AccessText VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag, Converter={StaticResource AddNewItemForLabel}}" />
<ContentPresenter/>
</StackPanel>
</Setter.Value>
</Setter>
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag, Converter={StaticResource AddNewItemForToolTip}}"/>
<Setter Property="Command" Value="{Binding AddNewItemCommand}" />
</Style>