0

*简介:* 我正在使用标准的 MVVM 框架,并且我有两个列表框,我希望能够从中选择一个项目。列表框绑定到同一类的不同 ObservableCollections。

绑定到 ViewModel 后,我希望能够在同一个窗口中表示选定的项目,具体取决于我选择的项目。

视图模型 -

    private KisesaSearchResultViewModel _selectedPerson;
    public KisesaSearchResultViewModel SelectedPerson
    {
        get
        {
            return _selectedPerson;
        }
        set
        {
            _selectedPerson = value;
            OnPropertyChanged("SelectedPerson");
        }
    }

    private KisesaSearchResultViewModel _selectedSearch;
    public KisesaSearchResultViewModel SelectedSearch
    {
        get
        {
            return _selectedSearch;
        }
        set
        {
            _selectedSearch = value;
            SelectedPerson = value;
            OnPropertyChanged("SelectedSearch");
        }
    }

    private KisesaSearchResultViewModel _selectedMatch;
    public KisesaSearchResultViewModel SelectedMatch
    {
        get
        {
            return _selectedMatch;
        }
        set
        {
            _selectedMatch = value;
            SelectedPerson = _selectedMatch;
            OnPropertyChanged("SelectedMatch");
        }
    }

XAML -

    <ListBox ItemsSource="{Binding Path=MatchedMembers, Mode=OneWay}" 
             ItemTemplate="{StaticResource SearchResult}"
             SelectedItem="{Binding SelectedSearch}">
    </ListBox>

    <ListBox ItemsSource="{Binding Path=SelectedMatchList, Mode=OneWay}" 
             ItemTemplate="{StaticResource SearchResult}"
             SelectedItem="{Binding SelectedMatch}">
    </ListBox>

我想这样显示信息:

        <TextBlock Grid.Row="1" Text="{Binding Path= SelectedPerson.FullName}" FontSize="18" FontWeight="Bold" Style="{StaticResource PInfo}" />
        <TextBlock Grid.Column="0" Grid.Row="2" Style="{StaticResource Info}" Margin="30,0,0,0" Text="{Binding Path=SelectedPerson.Age}"/>

问题: 我需要 SelectedSearch 和 SelectedPerson 因为我希望能够独立更改 SelectedPerson。此时,SelectedPerson 正在由 SelectedSearch 设置器设置,但它没有绑定到 Textblocks。我正在使用 OnPropertyChanged,但是否需要执行其他操作,例如使用事件处理程序?另外,有点不相关,但我可以限制 WPF 窗口,以便一次只选择两个不同列表框中的一个项目吗?

4

0 回答 0