ベンダーを使用する場合に設定されていないが、私は別のスレッドで実行するようにLoadVendorsを()希望のコンボボックスプロパティTask.Run
//This works, Vendor is set
LoadVendors();
Vendor = Vendors.FirstOrDefault();
にバインドされている、しかし、ベンダーが設定されていません。誰かが助けることができますか?
//Doesn't work, Vendor is not set!
System.Threading.Tasks.Task.Run(() => LoadVendors()).ContinueWith((t) => Vendor = Vendors.FirstOrDefault());
ベンダー
public ObservableCollection<Vendor> Vendors
{
get
{
return _vendors;
}
set
{
if (_vendors != value)
{
var oldVendors = new ObservableCollection<Vendor>(_vendors);
_vendors = value;
RaisePropertyChanged(nameof(Vendors), oldVendors, Vendors, true);
}
}
}
LoadVendors
private void LoadVendors()
{
var vendors = DataHelper.GetVendors()
DispatcherHelper.CheckBeginInvokeOnUI(() => Vendors.Clear());
vendors.ForEach(dcpV =>
{
DispatcherHelper.CheckBeginInvokeOnUI(() => Vendors.Add(vendor));
});
RaisePropertyChanged(nameof(Vendors));
}
RaisePropertyChangedの両方の呼び出しがちょっと面白く見えますが、ライブラリを使用していますか? – nvoigt
@nogigt実際MVVMLightライブラリ[リンク](http://www.mvvmlight.net/help/WP8/html/f88345df-bea6-aa85-4d3c-90b1cbded839.htm) – BertAR
リスト/コレクションのプロパティの設定を避けてください。データを変更する必要がある場合は、 'Add'メソッドと' Clear'メソッドを使用できます。私はほとんどそれがより簡単に動作することを保証することができます。 – Default