Ultraoptionset在失去焦点之前不会更改数据源

时间:2012-11-16 15:21:51

标签: infragistics bindingsource radiobuttonlist

我正在研究一个非常简单的ultraoptionset,它包含两个在设计时创建的项目(字符串)。 optionset值(通过绑定源)绑定到viewmodel中的字符串属性。数据源更新模式设置为OnPropertyChanged。

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

我觉得这么傻,因为这应该是超级简单的。我究竟做错了什么? :d

喝彩!

1 个答案:

答案 0 :(得分:0)

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

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控件的更新服务版本。