アプリケーションは、別のスレッド用にマーシャリングされたインターフェイスを呼び出しました。 (HRESULTからの例外:0x8001010E(RPC_E_WRONG_THREAD))私はオプションが、その中に表示インスタンス私の見解の一つでDispatcher.RunAsync(アプリケーションが別のスレッド用にマーシャリングされたインターフェイスを呼び出しました)
。
のオプションが完全に別個のオブジェクトであるかどうかはわかりません。
ユーザーがオプションを変更すると、メインビューが更新されます。
インスタンス化された最初のビュー。あなたが言うことができるよう
public VideosFoundView()
{
this.InitializeComponent();
this.initAddVideoFolderGridView();
this.addVideoFolderScrollViewer.ViewChanged += addVideoFolderScrollViewer_viewChanged;
options = new vfvOptions();
options.PropertyChanged += optionsChanged;
AppShell.Current.SetOptions(options);
}
私はvfvOptionsしかしoptionsChanged方法は困難私は親内で定義何かにアクセスをしている、親ビューのコンストラクタ内のビューインスタンス化します。
private async void optionsChanged(object sender, PropertyChangedEventArgs e)
{
await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() =>
{
//parse the options object
await Task.Run(() =>
{
this._GridViewVideoModels.Clear();
for (int i = 0; i < VideosFoundView.MyVideoModels.Count - 1; i++)
{
bool displayTile = true;
if (options.IgnoreImagesNotFound)
if (VideosFoundView.MyVideoModels[i].FullImageLocationOnDisk == "ms-appx:///Assets/image-not-found.gif")
displayTile = false;
if (displayTile)
{
this._GridViewVideoModels.Add(VideosFoundView.MyVideoModels[i]);
}
}
this.AddVideoFolderGridView.ItemsSource = _GridViewVideoModels;
});
});
}
上記のコードはで例外をヒット、私はイベントの完全な理解を持っていない可能性があり
public ObservableCollection<MyVideo> _GridViewVideoModels = new ObservableCollection<MyVideo>();
:
ので、同じようViewFoundViewクラスで定義されているthis._GridViewVideoModels.Clear();
イベントは、optionsChangedメソッドがvfvOptionsクラス/オブジェクト内からトリガされてトリガされますか?