簡體   English   中英

WPF多線程和綁定-無更新

[英]WPF Multithreading and binding - no updates

我正在嘗試在新任務期間將ProgressBar-IsInterminate的屬性更改為true。 我已經將DataContext添加到狀態欄(進度欄的父級)中,並綁定到進度欄屬性:

<StatusBar>
        <StatusBar.DataContext>
            <viemodel:EventsViewModel/>
        </StatusBar.DataContext>
<ProgressBar Name="pbProgress" IsIndeterminate="{Binding Pennding}"/>
</StatusBar>

在ViewModel(實現INotifyPropertychanged)中,我添加了屬性:

 private static bool _pending = false;

    public bool Pennding
    {
        get { return _pending; }
        set
        {
            _pending = value;
           NotifyPropertyChanged();
        }
    }

並嘗試在命令中更改該屬性:

App.Current.Invoke(() => new EventsViewModel { Pennding = true }));

但是什么都沒有改變! 我已經檢查了有關綁定的調試信息,並且沒有錯誤。

您需要更改已綁定的EventsViewModel的特定實例-您當前正在使用new語法創建一個新實例。

您的代碼應該是:

<StatusBar.DataContext>
    <viemodel:EventsViewModel x:Name="MyEventVM"/>
</StatusBar.DataContext>
<ProgressBar Name="pbProgress" IsIndeterminate="{Binding Pennding}"/>

然后是...

App.Current.Invoke(() => { MyEventVM.Pennding = true; }));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM