wpf - 有时无法在列表框中选择项目c#
问题描述
在我的 xaml 中,我将 a 绑定ObservableCollection<City> Cities
到它
而且SelectedItem
是SelectedCity
有时当鼠标悬停在某个项目上时,我无法选择它
我的列表框看起来像这样:
<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");
}
}
有人能解释一下,为什么我有时不能选择一个项目吗?
解决方案
你的意思是一旦你选择了一个,你就不能选择另一个。
你的问题是,如果你有二传手。去掉它。
if(_selectedCity != value)
{
城市是一个对象。如果您将一个对象与另一个对象进行比较,那么除非您提供了 Equals 方法,否则它们将是相同类型的。
因此,一旦您选择了一个城市,那么任何其他城市都是平等的。
推荐阅读
- sql - 执行sqlite查询和Alarmmanager
- django - Django-FormView 和表单验证问题
- php - 前端的 Virtuemart 订单列表。过滤掉取消和挂单
- c++ - 有没有更好的方法在 C++ 中对向量进行改组?
- indy - 使用 Indy 将消息从服务器推送到客户端
- c# - 如何访问我所有的谷歌电子表格 ID?
- python - TypeError:'list' 对象对于 Dikjstra python 实现不可调用
- php - Composer 自动加载器在运行测试时找不到 PHPUnit
- python - 图片未显示在 django 管理页面中
- batch-file - Windows 批量选择性删除