WPF MMVM通过单击项目[复制]导航到详细信息页

3pmvbmvn  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(97)

此问题在此处已有答案

WPF Binding ListBox Master/Detail(2个答案)
上个月关门了。
我有一个从API调用接收的对象,我将它们放入ListView中

<ListView Background="#222222"
     ScrollViewer.CanContentScroll="False"
     ItemsSource="{Binding Assets}"
     Style="{StaticResource ListStyle}">
</ListView>

通过点击列表中的项目,我想得到它的值(为了在特定对象上再次调用api以获得更多信息),并将用户导航到新的ViewModel“details”页面,在那里我将输出api响应。我可以通过使用命令创建一个按钮将用户导航到新的ViewModel页面

Command="{Binding HomeViewCommand}//as button parameter
 //Actual method in ViewModel
 HomeViewCommand = new RelayCommand(o =>
            {
                CurrentView = HomeVm;
            });

但是我不知道如何获得用户点击列表中的项目的值。

mw3dktmi

mw3dktmi1#

ListViewSelectedItem属性绑定到视图模型属性:

<ListView Background="#222222"
     ScrollViewer.CanContentScroll="False"
     ItemsSource="{Binding Assets}"
     SelectedItem="{Binding SelectedAsset}"
     Style="{StaticResource ListStyle}">
</ListView>

...并在执行命令时从该表中获取值:

public SelectedAsset { get; set; }
...
HomeViewCommand = new RelayCommand(o =>
{
    var selectedAsset = this.SelectedAsset;
    ...
});

另一个选项是使用CommandParameter属性,将目前选取或按下的项目当做命令参数传递给命令。

相关问题