【问题标题】:ListView selecting single item , wpfListView选择单个项目,wpf
【发布时间】:2011-03-29 17:04:23
【问题描述】:

我有一个列表视图,它的项目来源是一个列表。我希望用户只选择一项。当我将 listview 的 SelectionMode 设置为 single 时,用户仍然可以选择多个项目,并且似乎 listview 变得疯狂并选择了用户没有选择的项目......看起来很奇怪......谁能知道可能是什么问题?

我无法在此处粘贴屏幕截图,我没有粘贴选项.....

这是一个 xaml -

<StackPanel MinWidth="600" Margin="0,0,0,10" HorizontalAlignment="Left" Width="600">
    <GroupBox Header="Command Queue" BorderThickness="0" Foreground="CornflowerBlue">
                        <Border BorderThickness="1.5" CornerRadius="10">
                            <ListView SelectionMode="Single" Background="Transparent" BorderThickness="0" Margin="5" Name="ListView_CmdQ" ItemsSource="{Binding}" MaxHeight="450" FontFamily="verdana" FontSize="12">
                            </ListView>
                        </Border>
                    </GroupBox>
</StackPanel>               

【问题讨论】:

  • xaml 代码也很高兴看到。
  • 您是否从后面的代码中更改了 ListView 的任何属性或行为?我看不到 xaml 中的列表视图有任何问题。
  • 我在后面的代码中唯一做的就是this.ListView_CmdQ.DataContext = list_listItems;
  • 好的,我粘贴了您的 xaml 代码并将以下代码添加到代码隐藏文件中: List items = new List(); items.Add("BLA"); items.Add("BL2"); items.Add("BL3"); items.Add("BL4"); items.Add("BL5"); ListView_CmdQ.DataContext = 项目;这会产生一个完美工作的 ListView,其中只能进行单一选择。
  • list_listItems 究竟包含什么?

标签: wpf listview


【解决方案1】:

您列表中的项目是否多次出现?我以前见过这个问题,你有这样的东西:

var a = new Thing();
var b = new Thing();

var myList = new List<Thing>();
myList.Add(a);
myList.Add(b);
myList.Add(a);
myList.Add(b);

如果您要将ListView 绑定到myList,您将得到您所描述的行为。我认为这基本上与列表中的多个项目与SelectedItem 匹配这一事实有关,因此列表的样式有点混乱。一种解决方法是将每个项目包装在另一个类中:

var myList = new List<WrappedThing>();
myList.Add(new WrappedThing((a));
myList.Add(new WrappedThing((b));
myList.Add(new WrappedThing((a));
myList.Add(new WrappedThing((b));

...这意味着列表中的每个项目都是唯一的,即使它们包装的项目可能不是。

【讨论】:

  • @olia 如果解决了问题,请单击左侧的复选标记将 Dan Puzey 的答案标记为正确。
【解决方案2】:

如果您的 list_listItems 两次包含相同的字符串,则会出现此行为。这发生在值类型和引用字符串上。您可能应该将每个字符串包装在 TextBlock 中并将其放入列表视图中。

据报道这是一个仍然活跃的错误(自 2007 年以来)here

【讨论】:

  • 啊……好吧。现在我看到了我的问题,我在列表中放了很多相同的字符串....谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多