C# winforms 数据绑定一个标签页上的用户控件

问题描述

我有一个关于加载到 tabcontrol 中的 tabpages 的数据绑定用户控件的设计问题。 我希望能够将这些控件绑定到我正在使用的静态对象列表。我将添加简单的代码来说明我所追求的。

对象:

    public static List<DrawerData> Drawer = new List<DrawerData>
    {
        new DrawerData(),new DrawerData()
    }
    
    public class DrawerData 
    {
        private decimal apple;
        private decimal orange;             
        public decimal Apple { get; set; }
        public decimal Orange { get; set; }
   }

用户控制:

public partial class UcDrawers : UserControl
{ 
    private readonly int DrawerNum;
    public UcPid( int drawer)
    {
        InitializeComponent();
        DrawerNum = drawer;
    }


    private void UcDrawers_Load(object sender,EventArgs e)
    {
        UpDnApples.Value = Drawer[DrawerNum].Apple;
        UpDnoranges.Value = Drawer[DrawerNum].Orange;           
    }

    private void UpDnApples_ValueChanged(object sender,EventArgs e)
    {
         Drawer[DrawerNum].Apple= UpDnApples.Value;
    }

    private void UpDnoranges_ValueChanged(object sender,EventArgs e)
    {
         Drawer[DrawerNum].Orange= UpDnoranges.Value;
    }

tabcontrol 所在的表单 (DrawerTabControl) :

public partial class FrmKitchen : Form
{
    private readonly int dr;    

    public FrmKitchen(int NumOfdrawers)
    {
        InitializeComponent();
        dr = NumOfdrawers;
    
    }

    private void FrmPIDSettings_Load(object sender,EventArgs e)
    {
        for (int i = 0; i < dr; i++)
        {
            AddTab(i+1);
        }
    }

    private void AddTab(int d)
    {
        UcDrawers ucDrawers = new UcDrawers(d) { Dock = DockStyle.Fill };
        TabPage myTabPage = new TabPage();
        myTabPage.Controls.Add(ucDrawers);
        DrawerTabControl.TabPages.Add(myTabPage);
        
        myTabPage.Name = "DrawerTab" + d;
        myTabPage.Text = "Drawer " + d;
    }
            
}

假设用户控件上有两个标签,用于显示每个抽屉中苹果和橙子的数量。有没有一种好的方法来设置数据绑定来完成这样的事情?苹果和橙子的值可以在这种形式之外更改,我希望它们能够实时更新,理想情况下。

例如: DrawerTab1.LblAppleDrawerTab1.LblOrange 被绑定到 Drawer[0].AppleDrawer[0].Orange

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)