問題を示すためにサンプルアプリケーションを作成しました。 モデルクラス、データモデル、残りのAPIからデータを取得するサービスファイルがあるので、ここですべてのコードを入力するのは非常に難しいです。Windows 10のアプリケーション(UWP)のリストビューにバインドできません
情報を提供するファイルがほんの少ししか含まれていません。
_placeList = await DataModel.PlaceDataSource.GetData(url);この行のPlacePage.xaml.csファイルは実際にレコードをフェッチしていますが、バインドされずにlistviewに表示されます。
ただしgridViewPlaces.ItemsSource = await DataModel.PlaceDataSource.GetData(url);が動作します。
ここにソースコードがあります。 Project Download Link
<GridView Name="gridViewPlaces" ItemsSource="{x:Bind PlaceList}" SelectionMode="Single">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Width="200" Height="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Key" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="Value" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Value}" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
PagePage.xaml.csはファイルMainPage.xamlを
<SplitView x:Name="splitView" IsPaneOpen="True" OpenPaneLength="250" Grid.Row="1" DisplayMode="Inline">
<SplitView.Pane>
...
</SplitView.Pane>
<SplitView.Content>
<Grid>
<Frame x:Name="rootFrame" />
</Grid>
</SplitView.Content>
</SplitView>
PlacePage.xaml
private IEnumerable<Place> _placeList;
public IEnumerable<Place> PlaceList
{
get { return _placeList; }
}
public event EventHandler GroupsLoaded;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
url = e.Parameter.ToString();
LoadPlaces();
}
async private void LoadPlaces()
{
_placeList = await DataModel.PlaceDataSource.GetData(url);
//gridViewPlaces.ItemsSource = await DataModel.PlaceDataSource.GetData(url); // This works
gridViewPlaces.UpdateLayout();
if (GroupsLoaded != null)
GroupsLoaded(this, new EventArgs());
}
はいObservableCollectionに変更しようとしましたが、まだ動作しません。 MainPage.xaml.csファイルが表示されている場合は提供されているサンプルから同じコンセプトが使用され、splitviewのバインディングリストビューで動作します。 – Sharath
それはちょうどその半分です。また、コレクションを変更したことを通知する必要があります。更新されたテキストを見る –