gpt4 book ai didi

WPF列表框: problem with selection

转载 作者:行者123 更新时间:2023-12-01 09:39:47 26 4
gpt4 key购买 nike

在我的 XAML 文件中,我有一个这样声明的 ListBox:

           <ListBox x:Name="lstDeck" Height="280" ItemsSource="{Binding Path=Deck}"  >
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem Content="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

在我的 View 模型中,Deck 是一个 ObservableCollection,因此绑定(bind)直接显示我的集合的内容。

但是当我有几个值保持相同的值时(例如“10”六次),ListBox 中的选择有一个奇怪的行为:它选择了 2-3 个元素,而不是我点击的唯一一个。

此外,当我单击另一个 listBoxItem 时,它不会取消对上一个选择的焦点。

那么就看不到实际选中的是哪个item,也就无法得到SelectedIndex的值了。

有人有想法吗?

最佳答案

问题在于列表框无法区分不同的值。因此,一旦您单击“10”之一,它就会设置它的 SelectedItem 属性并更新其表示。因为它无法区分值类型,所以它会将每个“10”标记为选中。

但是为什么你的列表框中有好几次“10”呢?如果只是数值 10 或字符串“10”,对我来说没有任何意义。

如果您有一个更复杂的模型,并且您只显示一个属性,那么您应该绑定(bind)复杂模型并设置 DisplayMemberPath。

C#

public class Model
{
public Guid Id { get; set; }
public string Value { get; set; }
}

XAML

<ListBox ItemsSource="{Binding Path=Models}" DisplayMemberPath="Value" />

<ListBox ItemsSource="{Binding Path=Models}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Value}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

最好的问候
奥利弗·哈纳皮

关于WPF列表框: problem with selection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com