Иногда не может выбрать элемент в списке c # - PullRequest
0 голосов
/ 20 февраля 2019

В моем xaml я привязываю ObservableCollection<City> Cities к нему

, а SelectedItem равен SelectedCity

, и иногда, когда мышь находится над элементом, я не могувыберите it

Мой ListBox выглядит так:

<ListBox ItemsSource="{Binding Model.Cities}" SelectedItem="{Binding Model.SelectedCity}" HorizontalAlignment="Left" Height="468" Margin="10,136,0,0" VerticalAlignment="Top" Width="877">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid Margin="0,2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="100" />
                        <ColumnDefinition Width="150" />

                    </Grid.ColumnDefinitions>

                    <TextBlock Grid.Column="0" Text="{Binding Name}" />
                    <TextBlock Grid.Column="1" Text="{Binding Plz}" />
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

, а в Моей модели код выглядит так:

 class CitiesModel: MyObservableCollection<City>
{
    public ObservableCollection<City> Cities
    {
        get
        {
            return _cities;
        }
    }

    private ObservableCollection<City> _cities;


    private City _selectedCity;
    public City SelectedCity
    {
        get
        {
            return _selectedCity;
        }
        set
        {

            _selectedCity = value;
            RaisePropertyChanged("SelectedCity");

        }
    }

Может кто-нибудь объяснить, почемуя иногда не могу выбрать предмет?

1 Ответ

0 голосов
/ 20 февраля 2019

Вы имеете в виду, что выбрав один, вы не можете выбрать другой.

Ваша проблема в том, что если у вас есть в сеттере.Уберите его.

        if(_selectedCity != value)
        {

Город - это объект.Если вы сравниваете объект с другим, то, если вы не предоставили метод Equals, они будут равны, если того же типа.

Следовательно, если вы выберете Город, то любой другой Город будет равен.

...