WPF ComboBox坏空白值 [英] WPF ComboBox bad blank value

查看:686
本文介绍了WPF ComboBox坏空白值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个WPF ComboBox绑定到一组数据。我没有权限直接修改控件,也不能更改数据。

I have a WPF ComboBox that binds to a set of data. I do not have permissions to modify the control directly, nor can I change the data.

我在ComboBox中返回了1个项目,但实际上有2行;空白行和我的预期值。两者似乎都有一个索引值为0.我不想看到这个空白行,只是我的预期数据在ComboBox自动选择。我在这里看过每个人的相关帖子,但没有一个解决方案为我的工作。我已经编程了很长时间,但仍然相当新的WPF。感谢您的帮助。

I'm returned 1 item in my ComboBox, but there are actually 2 rows; the blank row and my expected value. Both appear to have an index value of 0. I don't want to see this blank row, just my expected data in the ComboBox auto-selected. I have looked through everyone's related posts in here, but none of the solutions have worked for my case. I have been programming for a long time, but still fairly new to WPF. Thanks for the help.

XAML

<MyComboBox Name="myTemplate5" MyLookup="Lookup" MyFilter="att_idn=-37" MyData="Detail" MyName="comp_tmpl_idn_srt" ModCde="31" MyEmptyValue="0" ToolTip="Have a nice day" Margin="0,2.5,30,2.5" MinWidth="120" Grid.Column="1"  SelectionChanged="myTemplate5_SelectionChanged" />

C#

private void myTemplate1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    MyComboBox work = sender as MyComboBox;
    if (work != null && work.HasSelectionChanged(e))
    {
        int compTmplId = int.Parse(work.SelectedValue.ToString());
        if (!_wpfIsDumb && !ChangeComponent(compTmplId))
        {
            _wpfIsDumb = true;
            work.SelectedItem = e.RemovedItems[0];
            _wpfIsDumb = false;
        }
    }
}

public bool HasSelectionChanged(SelectionChangedEventArgs e)
{
    if (e.RemovedItems.Count > 0 && e.AddedItems.Count > 0)
        return true;
    else
        return false;
}


推荐答案

将SelectedIndex设置为0。

You can achieved this by setting the SelectedIndex to 0.

XAML:

<ComboBox Name="myCB" 
                  SelectedIndex="0"
                  MaxWidth="200" MaxHeight="25" />

代码隐藏:

namespace nsComboBox
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            myCB.Items.Add("Item 1");
            myCB.Items.Add("Item 2");
            myCB.Items.Add("Item 3");

            myCB.SelectedIndex = 0;
        }     
    }
}

这篇关于WPF ComboBox坏空白值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆