当前位置:  开发笔记 > 编程语言 > 正文

需要使用LINQ将对象绑定到Listbox的简单示例

如何解决《需要使用LINQ将对象绑定到Listbox的简单示例》经验,为你挑选了1个好方法。

以下示例使用a成功绑定对象ListBox以显示它们.但是,我想在一个类中创建所有对象,然后从另一个类使用LINQ查询它们以填充我的XAML ListBox,我需要添加这个示例:

XAML:


    
        
        
            
                
                
                
            
        
    
    
        
    

代码背后:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication15
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }

    public class Customer
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public Customer(string firstName, string lastName)
        {
            this.FirstName = firstName;
            this.LastName = lastName;
        }
    }

    public class Customers : List
    {
        public Customers()
        {
            this.Add(new Customer("Jim", "Thompson"));
            this.Add(new Customer("Julie", "Watson"));
            this.Add(new Customer("John", "Walton"));
        }
    }
}

Robert Macne.. 5

编辑:添加ToList调用LINQ查询

您可以在代码隐藏中使用LINQ为此分配ListBox的ItemsSource.假设您为ListBox命名:


    
        
            
                
                
                
            
        
    
    
        
    

您可以在Loaded事件中分配ItemsSource:

public partial class Window1 : Window 
{
    public Window1()
    {
        this.Loaded += new RoutedEventHandler(Window1_Loaded);
        InitializeComponent(); 
    }

    void Window1_Loaded(object sender, RoutedEventArgs e)
    {
        Customers customers = new Customers();
        lstCustomers.ItemsSource = customers.Where(customer => customer.LastName.StartsWith("W")).ToList();
    }
}

假设您的LINQ查询将根据某些逻辑而更改,您可以在适当的位置重新分配ItemsSource.

如果你想在你的查询逻辑发生变化时不进行代码隐藏而进行绑定,那么最好使用CollectionViewSource,因为它具有排序和过滤功能(假设你使用的是LINQ).



1> Robert Macne..:

编辑:添加ToList调用LINQ查询

您可以在代码隐藏中使用LINQ为此分配ListBox的ItemsSource.假设您为ListBox命名:


    
        
            
                
                
                
            
        
    
    
        
    

您可以在Loaded事件中分配ItemsSource:

public partial class Window1 : Window 
{
    public Window1()
    {
        this.Loaded += new RoutedEventHandler(Window1_Loaded);
        InitializeComponent(); 
    }

    void Window1_Loaded(object sender, RoutedEventArgs e)
    {
        Customers customers = new Customers();
        lstCustomers.ItemsSource = customers.Where(customer => customer.LastName.StartsWith("W")).ToList();
    }
}

假设您的LINQ查询将根据某些逻辑而更改,您可以在适当的位置重新分配ItemsSource.

如果你想在你的查询逻辑发生变化时不进行代码隐藏而进行绑定,那么最好使用CollectionViewSource,因为它具有排序和过滤功能(假设你使用的是LINQ).

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有