如何将listView的selectedItem值传递到wpf MVVM中的另一页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将listView的selectedItem值传递到wpf MVVM中的另一页相关的知识,希望对你有一定的参考价值。

我对wpf不太熟悉,因此需要帮助。我想使用绑定将listview中所选项目的值传递给另一个页面文本框。我已经成功获取了所选的值,但是不知道如何在另一个页面上传递该值。请帮助

    <ListView x:Name="mobileList" Grid.Column="0" 
              Grid.Row="6" 
              HorizontalAlignment="Center" 
              HorizontalContentAlignment="Left" 
              Height="auto" VerticalAlignment="Bottom"
              ItemsSource="Binding Path=DataList,Mode=TwoWay" 
              SelectedItem="Binding SelectedItem,Mode=TwoWay">
        <ListView.View>
            <GridView>
                <GridViewColumn DisplayMemberBinding="Binding Path=ModelName,Mode=TwoWay"
                                Header="ModelName" Width="auto"/>
            </GridView>
        </ListView.View>
    </ListView>

    <TextBlock x:Name="txtModelID" Text="Binding Path=SelectedItem.ModelID, Mode=TwoWay" Grid.Row="2" 
               Grid.Column="1" Background="Gray" Width="200" HorizontalAlignment="Left" VerticalAlignment="Bottom"
               FontSize="10" Height="20"/>


    <TextBlock x:Name="txtModelName" Text="Binding Path=SelectedItem.ModelName, Mode=TwoWay" Grid.Row="3" 
               Grid.Column="1" Background="Gray" Width="200" HorizontalAlignment="Left" VerticalAlignment="Bottom"
               FontSize="10" Height="20"/>


    <TextBlock x:Name="txtBrandID" Text="Binding Path=SelectedItem.BrandID, Mode=TwoWay" Grid.Row="4" 
               Grid.Column="1" Background="Gray" Width="200" HorizontalAlignment="Left" VerticalAlignment="Bottom"
               FontSize="10" Height="20"/>

这是所选项目

private CK_Model _SelectedItem;
    public CK_Model SelectedItem
    
        get  return _SelectedItem; 
        set
        
            _SelectedItem = value;
            OnPropertyChanged(nameof(SelectedItem));
        
    

谢谢。

答案

您可以更改设置器:

    private CK_Model _SelectedItem;
    public CK_Model SelectedItem
    
        get  return _SelectedItem; 
        set
        
            _SelectedItem = value;
            OnPropertyChanged(nameof(SelectedItem));
            _anotherPageViewModel.YourProperty = _SelectedItem;
        
    

以上是关于如何将listView的selectedItem值传递到wpf MVVM中的另一页的主要内容,如果未能解决你的问题,请参考以下文章

vb listview 选中项的列值怎么获取

在c#如何将listview中的数据保存到数据库中的表中

如何使用 ListView1.SelectedItems().Text

将 ListView 的 SelectedItems 绑定到 ViewModel

如何将 SelectedItem 从其子项设置为 ListViewItem

如何将ListView选中的item编号提取出来