c# - ListView 中具有相同文本/内容的项目的问题

标签 c# listview observablecollection

我将 ListView 绑定(bind)到字符串的 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;
    }
}

当点击一个按钮时,列表被一个接一个地填充,每个标签被赋予默认值“空”。

列表将按预期填充列表,但是当我尝试选择其中一项时出现问题;只有第一个被选中。如果我给标签不同的(唯一的)默认名称,它们会按预期被选中。

知道为什么它会这样吗?

最佳答案

删除 ListView.ItemTemplate 并试一试。

<ListView Margin="4" Name="LvRiserList" DockPanel.Dock="Top" ItemsSource="{Binding GetAllRiserTags, UpdateSourceTrigger=PropertyChanged}">
</ListView>

关于c# - ListView 中具有相同文本/内容的项目的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13885887/

相关文章:

c# - 如何在从 ObservableCollection<T> 派生的运行时创建类的实例?

c# - 使用 twitter bootstrap radio-button 作为 html.radiobutton 的替代品

c# - 什么相当于C#中的map of maps

c# - 使用 C# 中的 CDK 将 EC2 实例分配给现有 VPC

c# - ReadInt32 与 ReadUInt32

javascript - Nativescript (JavaScript) 中的函数中的绑定(bind)变量未更新

.net - 使用ObservableCollection <T>时,是否仍需要在T类型上实现INotifyPropertyChanged?

android - 如何将来自 json url 的图像解析为 listview 列表项 android

android - 带有节标题和复选框的 ListView

c# - MVVM 属性取决于对象图