【问题标题】:Ultraoptionset doesn't change the datasource before losing focusUltraoptionset 在失去焦点之前不会更改数据源
【发布时间】:2012-11-17 01:14:14
【问题描述】:

我正在研究一个非常简单的超选项集,它由设计时创建的两个项目(字符串)组成。选项集值(通过绑定源)绑定到视图模型中的字符串属性。数据源更新模式设置为 OnPropertyChanged。

问题是视图模型在整个选项集失去视图焦点之前没有更新。因此,如果我在两个值之间来回更改,属性不会得到更改,因此控件的验证将不起作用(因为数据未更新)。

我觉得愚蠢,因为这应该非常简单。我究竟做错了什么? :D

干杯!

【问题讨论】:

    标签: infragistics bindingsource radiobuttonlist


    【解决方案1】:

    我使用 NetAdvantage 2012 第 2 卷对此进行了测试,发现当更改通过 UI 选择的选项时,我绑定了 UltraOptionSet 的对象中的属性设置器会在属性更改时更新。这是我使用的代码:

    public partial class Form1 : Form
    {
        TestObject to;
        public Form1()
        {
            InitializeComponent();
            to = new TestObject() { Prop = "Two"};
            Binding optionBinding = new Binding("Value", to, "Prop");
            optionBinding.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
            this.ultraOptionSet1.DataBindings.Add(optionBinding);
        }
    
    }
    
    public class TestObject
    {
        private string prop;
        public string Prop
        {
            get
            { 
                return prop; 
            }
            set
            {
                System.Diagnostics.Debug.WriteLine("Current value :" + prop + " is being set to " + value);
                if (value != prop) prop = value;
            }
        }
    }
    

    我建议验证您是否在绑定上正确设置了 DataSourceUpdateMode。如果您这样做,您可能需要检查是否有可以测试的 NetAdvantage 控件的更高服务版本。

    【讨论】:

    • 你说得对。当然,我搞砸了我的数据绑定。 :D 现在可以了。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 2013-10-02
    相关资源
    最近更新 更多