如何在使用DataTemplate创建的对象列表中的ListBox中设置项目的C# WPF

32 浏览
0 Comments

如何在使用DataTemplate创建的对象列表中的ListBox中设置项目的C# WPF

这个问题在下面已经有了答案:

SelectedItem、SelectedValue和SelectedValuePath的区别

C# - WPF

我有一个名为“lstCustomer”的列表框,用“Id_Name”对象的List填充

在代码的某一点,我得到一个ID - 例如“2”

如何以编程方式选择具有ID为2的listBox元素?

lstCustomer.SelectedIndex = ????

代码 - 填充列表

List list = new ();
list.Add(new Id_Name { Id = "1" , Name = "John" });
list.Add(new Id_Name { Id = "2", Name = "Jim" });
list.Add(new Id_Name { Id = "3", Name = "Frank" });
lstCustomer.ItemsSource = list;

XAML - LISTBOX和DATATEMPLATE

                
                    
                        
                            
                            
                        
                        
                            
                        
                        
                    
                
            

admin 更改状态以发布 2023年5月23日
0
0 Comments

如果您不是非常想使用索引,我建议绑定ListBox的SelectedItem属性:


然后在您的ViewModel中,您可以简单地设置该属性:

public Id_Name SelectedId_Name { get; set; }   //Needs to call your implementation of INotifyPropertyChanged   
[...]  
SelectedId_Name = list.Where( x => x.Id == "2").FirstOrDefault();


或者利用ListBox内置的SelectedValue功能:


使用

public string SelectedId { get; set; } // plus notification
[...]
SelectedId = "2";

0