6

WPF アプリケーションの Window クラスにブール値があります。このブール値が true か false かに応じてトリガーをターゲットにするにはどうすればよいですか?

<Grid>
  <Grid.Triggers>
    <Trigger ... />
  </Grid.Triggers>
</Grid>

ありがとう。

4

2 に答える 2

13

* .csファイル内:

public partial class MainWindow : INotifyPropertyChanged
{
    public MainWindow()
    {
        DataContext = this;
        InitializeComponent();
    }

    public event PropertyChangedEventHandler PropertyChanged = delegate { };

    public bool Flag { get; set; }

    private void ButtonClick(object sender, RoutedEventArgs e)
    {
        Flag = true;
        OnPropertyChanged("Flag");
    }

    protected void OnPropertyChanged(string property)
    {
        PropertyChanged(this, new PropertyChangedEventArgs(property));
    }
}

xaml形式:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Width="525"
        Height="350">

    <Window.Resources>
        <Style TargetType="Grid">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Flag}" Value="True">
                    <Setter Property="Background" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="30" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <Button Click="ButtonClick" Content="Click Me" />
    </Grid>
</Window>
于 2012-06-19T13:57:04.003 に答える
3

DataTriggerを使用できます。ただし、スタイルまたはテンプレート内で使用する必要があると思います。

または、コードビハインドの変更をキャプチャすることもできます。

于 2012-06-19T13:56:18.947 に答える