【发布时间】:2012-12-14 20:36:36
【问题描述】:
我将列表视图绑定到字符串的 ObservableCollection。
Xaml:
<ListView Margin="4" Name="LvRiserList" DockPanel.Dock="Top" ItemsSource="{Binding GetAllRiserTags, UpdateSourceTrigger=PropertyChanged}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" HorizontalAlignment="Stretch" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
代码:
public ObservableCollection<string> GetAllRiserTags
{
get
{
var riserTags = new ObservableCollection<string>();
foreach (var riser in RiserCollection)
{
riserTags.Add(riser.Tag);
}
return riserTags;
}
}
当一个按钮被点击时,列表会被一个一个地填充,并且每个标签被赋予一个默认值“空”。
列表将按预期填充列表,但是当我尝试选择其中一项时出现问题;只有第一个被选中。如果我给标签不同的(唯一的)默认名称,它们会按预期被选中。
知道它为什么会这样吗?
【问题讨论】:
-
包含您用来“选择”项目的代码。
-
你在点击选择吗?如果是这样,请确认您单击的是 TextBlock 本身,而不是 ListViewItem 的空白部分;因为使用 TextBlock 作为 ListView ItemTemplate 将导致项目仅跨越它的内容长度。
-
我尝试用鼠标选择它们。如果我点击第三个项目,第一个项目将被标记为蓝色。
-
使用 Label 或 TextBlock 的结果是一样的。
标签: c# listview observablecollection