啊鑫
2024-07-09 0552fcc8cb73fc3021e2915129f55a42ed3f20e5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#region
 
using System;
using System.Data;
using System.Windows.Forms;
using CSFrameworkV5.Common;
 
#endregion
 
namespace CSFrameworkV5.Library.CommonClass
{
    /// <summary>
    ///     frmBaseDataForm类中的SetEditorBindingValue方法。
    /// </summary>
    public class EditorBinding
    {
        /// <summary>
        ///     给输入控件绑定的数据源赋值
        /// </summary>
        /// <param name="bindingControl">输入控件</param>
        /// <param name="value">值</param>
        public static void SetEditorBindingValue(Control bindingControl,
            object value)
        {
            SetEditorBindingValue(bindingControl, value, false);
        }
 
        /// <summary>
        ///     给输入控件绑定的数据源赋值.
        /// </summary>
        /// <param name="bindingControl">输入控件</param>
        /// <param name="value">值</param>
        /// <param name="setEditorValue">是否给控件的EditValue属性赋值</param>
        public static void SetEditorBindingValue(Control bindingControl,
            object value, bool setEditorValue)
        {
            try
            {
                object temp = null;
                if (value != DBNull.Value) temp = value;
 
                if (bindingControl.DataBindings.Count > 0)
                {
                    var dataSource = bindingControl.DataBindings[0].DataSource;
                    var field = bindingControl.DataBindings[0].BindingMemberInfo
                        .BindingField;
                    if (dataSource is DataTable) //数据源
                        (dataSource as DataTable).Rows[0][field] =
                            value; //给数据源对应的字段赋值
                    else
                        DataConverter.SetValueOfObject(dataSource, field,
                            value);
                }
 
                if (setEditorValue)
                    DataConverter.SetValueOfObject(bindingControl, "EditValue",
                        value);
 
                bindingControl.Refresh();
            }
            catch
            {
            } //这里不用显示异常信息. 
        }
    }
}