我将listview绑定到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;
}
}
单击按钮时,列表会逐个填充,每个标记的默认值为“空”。
列表将按预期填充列表,但是当我尝试选择其中一个项目时会出现问题;只有第一个被选中。如果我为标签提供不同(唯一)的默认名称,则会按预期选择它们。
知道为什么会这样做吗?
答案 0 :(得分:0)
删除ListView.ItemTemplate并试一试。
<ListView Margin="4" Name="LvRiserList" DockPanel.Dock="Top" ItemsSource="{Binding GetAllRiserTags, UpdateSourceTrigger=PropertyChanged}">
</ListView>
答案 1 :(得分:0)
创建包含id和value属性的自定义类。覆盖GetHash和Equals函数。 在您的Viewmodel中计算id或给它一些唯一值。
绑定到value属性。
如果您不使用自定义类,使用相同值的字符串将始终遇到此问题:)