【问题标题】:Sometimes cannot select item in Listbox c#有时无法在列表框中选择项目c#
【发布时间】:2019-07-14 04:38:48
【问题描述】:

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

SelectedItemSelectedCity

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

我的列表框如下所示:

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

        }
    }

谁能解释一下,为什么我有时不能选择一个项目?

【问题讨论】:

  • 为什么你的视图模型继承自MyObservableCollection&lt;&gt;?听起来很可疑……会不会是这个基类中发生的事情导致重新绑定到模型?
  • 它只是一个继承自observablecollection和INotifyPropertyChanged的类,并且有一个名为RaisePropertyChanged的方法

标签: wpf listbox selecteditem


【解决方案1】:

你的意思是一旦你选择了一个,你就不能再选择另一个了。

你的问题是,如果你有二传手。 删除它。

        if(_selectedCity != value)
        {

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

因此,一旦您选择了一个城市,那么任何其他城市都是平等的。

【讨论】:

  • 我删除了setter中的if,但是,并没有改变任何东西。仍然有时无法选择项目
  • 好的,我认为它与Itemssource observableCollection有关,因为当我删除selectedItem时也会发生这种情况
猜你喜欢
  • 2021-04-11
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多