有时无法在列表框C#中选择项目

时间:2019-02-20 13:13:33

标签: wpf listbox selecteditem

在我的xaml中,我将ObservableCollection<City> Cities绑定到它

SelectedItemSelectedCity

有时候,当鼠标悬停在某个项目上时,我无法选择

我的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 :(得分:0)

您的意思是,一旦选择了一个,就无法选择另一个。

您的问题是,如果您在二传手中,就可以这样做。 删除它。

        if(_selectedCity != value)
        {

城市是一个对象。 如果将一个对象与另一个对象进行比较,则除非您提供了Equals方法,否则如果类型相同,它们将相等。

因此,一旦您选择一个城市,则其他任何城市都是相等的。