在我的xaml中,我将ObservableCollection<City> Cities
绑定到它
而SelectedItem
是SelectedCity
有时候,当鼠标悬停在某个项目上时,我无法选择
我的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");
}
}
有人可以解释一下,为什么我有时不能选择一个项目吗?
答案 0 :(得分:0)
您的意思是,一旦选择了一个,就无法选择另一个。
您的问题是,如果您在二传手中,就可以这样做。 删除它。
if(_selectedCity != value)
{
城市是一个对象。 如果将一个对象与另一个对象进行比较,则除非您提供了Equals方法,否则如果类型相同,它们将相等。
因此,一旦您选择一个城市,则其他任何城市都是相等的。