1

背景色をバインドしようとしていますが、何らかの理由でコントロールが更新されていません。プロパティの取得にヒットしているのがわかりますが、GUI は更新されません。足りないものはありますか?

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

    // ...

    private Color m_myColorProperty;
    public Color MyColorProperty
    {
        get
        {
            return m_myColorProperty;
        }
        set
        {
            m_myColorProperty = value;
            OnPropertyChanged("MyColorProperty");
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    private void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

そしてxaml:

<Window x:Class="TestApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.Background>
        <SolidColorBrush Color="{Binding MyColorProperty}"/>
    </Grid.Background>
4

3 に答える 3

1

色ではなくブラシの種類をバインドする必要があります。SolidBrush、Gradient Brush など。単色が必要な場合は、Solid ブラシを使用します。

于 2013-10-09T22:04:45.017 に答える
0

DependencyProperty"this" (ウィンドウ) をデータ コンテキストとして使用しているため、実装作業を行う代わりにa を使用する方が簡単でしょうINotifyPropertyChangedか?

于 2013-10-09T22:09:56.633 に答える