为了账号安全,请及时绑定邮箱和手机立即绑定

当 ComboBox ItemsSource 更改时,WPF Combobox 更新但不显示显示

当 ComboBox ItemsSource 更改时,WPF Combobox 更新但不显示显示

C#
收到一只叮咚 2022-12-24 13:51:28
我是 WPF 的新手,试图在 keyup 事件上修复自动建议组合框Xaml 代码:这是我的 xaml:<ComboBox x:Name="party_list"  Margin="10,15,0,6"   Grid.Column="1" AllowDrop="True" IsTextSearchEnabled="False" IsEditable="True" KeyUp="party_list_KeyUp"  >C#代码:代码隐藏    public partial class page_addsale : Page    {        List<string> nameList { get; set; }        DataTable data = new DataTable();        List<string> autoList = new List<string>();        public page_addsale()        {            InitializeComponent();            nameList = new List<string>();            con.Open();            OleDbDataAdapter ad = new OleDbDataAdapter("select id, party_name from party_list", con);            ad.Fill(data);            con.Close();            party_list.ItemsSource= data.DefaultView;            party_list.DisplayMemberPath = "party_name";            party_list.SelectedValuePath = "id";            string[] arr = data.AsEnumerable().Select<System.Data.DataRow, String>(x => x.Field<String>("party_name")).ToArray();            nameList.AddRange(arr);                    }               private void party_list_KeyUp(object sender, KeyEventArgs e)        {            party_list.ItemsSource = null;            var names = from n in nameList where (n.StartsWith(party_list.Text)) select n;            foreach (string name in names)            {                autoList.Add(name.ToString());            }            try            {                if (party_list.Text.Length > 0)                {                   if (autoList.Count > 0)                   {                        party_list.ItemsSource = autoList;                        party_list.IsDropDownOpen = true;                   }                                  }            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);            }        }当项目源绑定更改时项目正在更新但不显示在组合框中
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

您需要在分配新的之前清除 party_list.ItemsSource = autoList;


party_list.DisplayMemberPath = "";

party_list.SelectedValuePath = "";

但我不会建议这样创建类。并将您的数据表转换为它的类。这样你就会有恒心。


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 341 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信