1
我有一個屬性RaisePropertyChanged(PropName, oldValue, true, true)
當我沒有任何連接到互聯網沒有更多,但它會拋出異常,我在錯誤的線程。 所以我想更新屬性窗體我的ViewModel,但我怎麼得到我的ViewModel中的當前線程或什麼是您的解決方案的建議?從另一個線程的ViewModel更新INotifyPropertyChanged屬性WinRT
我的視圖模型,構造函數
public MyViewModel()
{
// START LISTENING TO NETWORKSTATUS
NetworkInformation.NetworkStatusChanged += OnNetworkStatusChangedHandler;
}
NetworkChanged回調方法
private async void OnNetworkStatusChangedHandler(object sender)
{
ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
if (profile == null)
{
IsRefreshEnabled = false;
}
else
{
IsRefreshEnabled = true;
}
}
我的房屋
public const string IsRefreshEnabledPropertyName = "IsRefreshEnabled";
private bool _isRefreshEnabled = true;
public bool IsRefreshEnabled
{
get { return _isRefreshEnabled; }
set
{
if (_isRefreshEnabled == value) { return; }
var oldValue = _isRefreshEnabled;
_isRefreshEnabled = value;
RaisePropertyChanged(IsRefreshEnabledPropertyName, oldValue, value, true);
}
}
提前感謝!
我認爲它很糟糕,把'Dispatcher.RunAsync'放在屬性的setter中,因爲它也會在UI線程中改變屬性時運行。它更好地改變'RunAsync'中的屬性。這種方法只在需要時調用... –
完全公平的評論和一個很好的建議。 –
你如何實現這個觀察集合? – Lance