Combobox SelectedItem显示旧值

时间:2014-10-08 13:05:38

标签: c# wpf combobox

我在网格中有以下ComboBox:

   <ComboBox ItemsSource="{Binding Categories}">
       <ComboBox.SelectedItem>
           <Binding Path="SelectedCat" UpdateSourceTrigger="PropertyChanged">
               <Binding.ValidationRules>
                   <MyValidation/>
               </Binding.ValidationRules>
           </Binding>
       </ComboBox.SelectedItem>
   </ComboBox>

Categories是一个ObservableCollection,而SelecetedCat的定义如下:

private string m_selectedCat;
public string SelectedCat
{
    get { return m_selectedCat; }
    set
    {
        m_selectedCat = value;
        if (value == "--reset--")
        {
            var dlg = new CatDialog();
            var res = dlg.ShowDialog();
            if (res == true)
            {
                var newCat = dlg.Text;
                Categories.Add(newCat);
                SelectedCat = newCat;
            }
        }
        NotifyPropertyChanged("SelectedCat");
    }
}

现在,当我选择&#34; - 重置 - &#34;从组合框中,CatDialog显示让我插入一个新的Cat字符串,我必须在Categories属性中插入,然后选择它。

问题是在Category.Add(newCat)之后立即召回了setter;被执行。那时,value关键字仍然是&#34; - reset - &#34;并且第二次调用该对话框,而我已经提供了所需的Cat。

有什么方法可以解决这个问题吗?

此致 FZ

0 个答案:

没有答案
相关问题