【问题标题】:WPF Combobox with SelectedValue is behaving weird带有 SelectedValue 的 WPF 组合框表现得很奇怪
【发布时间】:2018-08-31 13:46:20
【问题描述】:

我有一个包含一定年数的ComboBox。但是,我的项目有问题,应该选择。

XAML

 <ComboBox MaxDropDownHeight="90" Height="10" Width="80" ItemsSource="{Binding accy}"  DisplayMemberPath="DisplayMember" SelectedValuePath="ValuePath" SelectedValue="{Binding Accy_selected}"/>

MainWindow.cs

 public MainWindow()
    {
        InitializeComponent();           
        this.DataContext = new Test();}

Test.cs

class Test
{
    public ObservableCollection<ComboYear> accy { get; set; }
    private string _accy_selected = "";

    public Test()
    {
        int min = 1940;
        int max = 2040;
        accy = new ObservableCollection<ComboYear>();                                    
            for (int i = min; i < max; i++)
            {
                accy.Add(new ComboYear { DisplayMember = Convert.ToString(i), ValuePath = Convert.ToString(i) });
            }
            Accy_selected = Convert.ToString(max);                     
    }

        public class ComboYear
        {
            public string DisplayMember { get; set; }
            public string ValuePath { get; set; }
        }       

    public string Accy_selected
    {
        get { return _accy_selected; }
        set
        {
            if (value != _accy_selected)
            {
                _accy_selected = value;
                NotifyPropertyChanged("Accy_selected");
            }

        }
    }

ComboBox 已填充,但未选择任何项目。奇怪的是,如果我改变这一行

Accy_selected = Convert.ToString(max);

对此它正​​在工作。它在ComboBox 中每年都有效。将int 转换为string 是不是我太笨了?

Accy_selected = "2039";

我不知道如何解决它

【问题讨论】:

    标签: c# wpf data-binding combobox selected


    【解决方案1】:

    max (2040) 不包含在ComboBox 中,是吗?只要计数器变量i 小于 max,您就在迭代:

    for (int i = min; i < max; i++)
    

    如果将条件更改为i &lt;= max,则在设置Accy_selected 属性时应包含并选择值“2040”,如下所示:

    Accy_selected = Convert.ToString(max);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多