3

我将列表视图绑定到字符串的 ObservableCollection。

xml:

<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;
    }
}

单击按钮时,列表会被一个一个填充,并且每个标签都被赋予一个默认值“空”。

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

知道为什么它会这样吗?

4

2 回答 2

0

删除 ListView.ItemTemplate 并尝试一下。

<ListView Margin="4" Name="LvRiserList" DockPanel.Dock="Top" ItemsSource="{Binding GetAllRiserTags, UpdateSourceTrigger=PropertyChanged}">
</ListView>
于 2012-12-14T20:44:51.230 回答
0

创建一个包含 id 和 value 属性的自定义类。覆盖 GetHash 和 Equals 函数。在您的 Viewmodel 中计算 id 或给它一些唯一值。

绑定到 value 属性。

使用相同值的字符串,如果您不使用自定义类,您将始终遇到此问题:)

于 2012-12-14T21:08:42.517 回答