Bindings と x:Bind を使用していくつかのテストを行っているところ、興味深いことがわかりました。
XAML
<ListView Background="White" ItemsSource="{x:Bind ViewModel.CurrenciesViewModel.Currencies.Currencies}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="model:Currency">
<StackPanel>
<TextBlock Foreground="Red" Text="1"/>
<TextBlock Foreground="Red" Text="{x:Bind Name}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
最初の x:Bind は、プロパティ Currencies を持つプロパティ Currencies (モデル名 CurrencyList) を持つプロパティ CurrenciesViewModel (モデル名 CurrencyListViewModel) を持つ viewModel で、ObservableColletion です。
これは、このようなオブジェクトを追加するときに機能します
CurrenciesViewModel.Currencies.Currencies.Add(new Currency() { Name = "test" });
CurrenciesViewModel.Currencies.Currencies.Add(new Currency() { Name = "test2" });
しかし、1 つのメソッドを使用して DataProvider (xml を使用した単純な残り) でモデルをダウンロードするとき
Task<CurrencyList> GetCurrencyList();
したがって、メイン ViewModel の最初のプロパティ CurrencyViewModel は次のようになります
CurrenciesViewModel = new CurrencyListViewModel(await DataProvider.GetCurrencyList());
それから私のlistViewは空です! データがダウンロードされているかどうかを確認しましたが、そうです... x:Bind を Binding に変更しましたが、すべてが機能しています。
必要に応じて、すべてのクラスをコピーして貼り付けることができます。でも教えてくださいwww