小编Mag*_*ama的帖子

ListView SelectedItem与Xamarin Forms和ReactiveUI问题绑定

我有一个显示名称的项目的基本列表.我需要在单击其中一个列表项时导航到新屏幕.超级简单吧?我无法弄清楚这出错的地方.

该列表正确显示其项目.选择项目后,列表视图会突出显示相应的项目,但不会出现任何其他项目.我没有错.就好像视图和视图模型没有正确连接,或者视图模型中的订阅可能没有正确设置.我是ReactiveUI的新手.

下面是我的代码的虚拟示例.

ItemListViewModel.cs

public IReactiveDerivedList<ItemTileViewModel> ItemTiles { get; protected set; }
public ItemTileViewModel SelectedItemTile { get; set; }

private void Initialize(){
     ItemTiles = LoadedItems.CreateDerivedCollection(item => new ItemTileViewModel(item));
     this.WhenAnyValue(x => x.SelectedItemTile)
            .Where(tile => tile != null)
            .Select(tile => tile.Model)
            .Subscribe(item =>
            {
                HostScreen.Router.Navigate.ExecuteAsync(new ItemViewModel(item));
                SelectedItemTile = null;
            });

     // We load the items
}
Run Code Online (Sandbox Code Playgroud)

我不确定是否适合使用派生列表.我希望我没有给出足够的反馈意见.

ItemListView.xaml.cs - 构造函数

this.OneWayBind(ViewModel, vm => vm.ItemTiles, v => v.ItemTiles.ItemsSource);
this.Bind(ViewModel, vm => vm.SelectedItemTile, v => v.ItemTiles.SelectedItem);
Run Code Online (Sandbox Code Playgroud)

ItemListView.xaml

<ListView x:Name="ItemTiles">
    <ListView.ItemTemplate>
      <DataTemplate>
        <ViewCell>
          <views:ItemTileView ViewModel="{Binding}" …
Run Code Online (Sandbox Code Playgroud)

xaml listview mvvm reactiveui xamarin-forms

5
推荐指数
1
解决办法
2688
查看次数

标签 统计

listview ×1

mvvm ×1

reactiveui ×1

xamarin-forms ×1

xaml ×1