Как передать значение selectedItem для listView на другую страницу в wpf MVVM - PullRequest
0 голосов
/ 21 апреля 2020

Я не очень знаком с wpf, поэтому мне нужна помощь. Я хочу передать значение выбранного элемента в виде списка в текстовое поле другой страницы, используя привязку. Я успешно получил выбранное значение, но не знаю, как передать это на другую страницу. Пожалуйста, помогите

    <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));
        }
    }

Спасибо.

1 Ответ

0 голосов
/ 21 апреля 2020

Вы можете изменить сеттер:

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