2

静的プロパティへのバインドに問題があります。bool変数の値に応じてtrueまたはfalse
使用したい。LabelContent

XAML:

<Label Content="{Binding Source={x:Static l:MainWindow.IsTrue}, Mode=OneWay}" />

コードビハインド:

public partial class MainWindow : Window
{
    public static bool IsTrue { get; set; }
    DispatcherTimer myTimer;

    public MainWindow()
    {
        InitializeComponent();

        myTimer = new DispatcherTimer();
        myTimer.Interval = new TimeSpan(0, 0, 2); // tick every 2 seconds
        myTimer.Tick += new EventHandler(myTimer_Tick);
        myTimer.IsEnabled = true;
    }

    void myTimer_Tick(object sender, EventArgs e)
    {
        IsTrue = !IsTrue;
    }
}

常にFalseを表示します。

双方向バインディング を実装するには、指定する必要があることを知っていますPath。しかし、私は一方向バインディングが必要です。

4

1 に答える 1

7

問題は、プロパティが変更されたとき (または変更された場合) を WPF が認識できないことです。インスタンス メソッドとは異なり、INotifyPropertyChanged「静的インターフェイス」を持つことができないため、実装できるスタイル インターフェイスはありません。そのため、変更された値は表示されません。

WPF 4.5 を使用している場合は、新しい静的プロパティ変更通知サポートを使用してこれを処理できます。

.NET 4.0 以前では、これを処理する最も簡単な方法は、通常、プロパティをシングルトンにラップINotifyPropertyChangedし、シングルトン インスタンスで使用することです。

于 2012-09-18T01:05:51.823 に答える