次のトリガーを再利用するにはどうすればよいですか?これをウィンドウ内のすべてのクリアボタンに再利用する必要があります。ボタンは、リストビューでアイテムを選択した場合にのみ表示されます。Binding ElementName=teachers
したがって、 asパラメータを渡す必要があります。これを行う方法はありますか?
<Button Width="15" Grid.Column="1" Content="X" Margin="0,2,5,2" Command="{Binding ClearSubjectCommand}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Visibility" Value="Visible"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=teachers, Path=SelectedItem}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
編集
添付プロパティを試してみました。しかし、成功しません。
<Button Width="15" Grid.Column="1" Content="X" Margin="0,2,5,2" Command="{Binding ClearSubjectCommand}"
HorizontalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
local:ThemeProperties.BindingElementName="teachers" Style="{StaticResource cancelButton}"/>
とスタイル、
<Style TargetType="{x:Type Button}" x:Key="cancelButton">
<Setter Property="Visibility" Value="Visible"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName= local:ThemeProperties.BindingElementName, Path=SelectedItem}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
クラス、
public static class ThemeProperties
{
public static string GetBindingElementName(DependencyObject obj)
{
return (string)obj.GetValue(BindingElementNameProperty);
}
public static void SetBindingElementName(DependencyObject obj, string value)
{
obj.SetValue(BindingElementNameProperty, value);
}
// Using a DependencyProperty as the backing store for BindingElementName. This enables animation, styling, binding, etc...
public static readonly DependencyProperty BindingElementNameProperty =
DependencyProperty.RegisterAttached("BindingElementName", typeof(string), typeof(ThemeProperties), new FrameworkPropertyMetadata("teachers"));
}