iT邦幫忙

1

C# 有關LABEL控制項 的DataBindings的問題

c# ui

各位好
想請教如果在WINFORM介面下,控制項Label如果想使用DataBinding綁定其"Text"屬性時

資料來源DataSource只能是DataTable或是DataSet嗎?

因為當初設計時資料變數都是用物件的屬性,原本以為只要來源給物件名稱,成員給屬性即可

但似乎不行

想請教一般現在WINFORM介面想用DATABINGDING時是如何實作呢?

2
小魚
iT邦大師 1 級 ‧ 2021-04-23 12:45:14

說人話 XD

其實不需要做甚麼DataBinding,
你可以直接 Label1.Text = 'xxx'; 就好了
至於資料不知道你是不是從資料庫取的?
要怎麼取都可以只要能取到就好了.

p.s.
DataBinding我怎麼印象中網頁比較有在用,
雖然我現在都寫MVC沒在用DataBinding了.

Camiu iT邦新手 5 級 ‧ 2021-04-23 13:18:22 檢舉

你好
這個直接指定我知道,之前也是這樣用的
直到我有天用了DATAGRIDVIEW,用DATASOURCE綁定,我才發現資料存取這樣似乎很方便
於是才興起這個念頭想試試看
我是做自動控制UI介面,操控電腦內的IT卡介面的,有些用法不知道跟現在大家實作的用法是否一樣所以想問問看

小魚 iT邦大師 1 級 ‧ 2021-04-23 17:42:24 檢舉

如果WPF倒是很多都是用DataBinding的方式,
WinForm比較少用到,
只有類似你說的GridView之類的才有用.

2
japhenchen
iT邦大師 1 級 ‧ 2021-04-23 13:20:58

只是對可控元件的屬性做設定而已

        private void Form1_Load(object sender, EventArgs e)
        {
            var data = "xxxxxxxxxxxxxx";
            Label lbl = new Label();
            lbl.Parent = this;
            lbl.Left = 10;
            lbl.Top = 10;
            lbl.Font = new Font("微軟正黑體", 30);
            lbl.AutoSize = true;
            lbl.Text = "test";
            lbl.DataBindings.Add(new Binding("text",data,null));
        }

https://ithelp.ithome.com.tw/upload/images/20210423/20117954W9P1Jv9i5B.jpg

我在使用Combobox、DataGridView、ListView....這類的大量資料的可視控件,才會動用DataBinding

Camiu iT邦新手 5 級 ‧ 2021-04-23 14:06:55 檢舉

謝謝您的解答與回覆
只是一直以來都對DataBinding有太多美好的想法
所以才會想說是不是要把所有原本之前的控制項屬性都能以這種方式指定
甚至於在考慮把系統中原本用物件屬性來存取變數的方式,都改成用DATATABLE的方式來存變數,不知道這樣的方法好嗎

如果你的程式界面是用到資料庫來呈現多國語言的話,當然OK啊,至少不用台灣寫一遍,中國大陸寫一遍,日本韓國再寫一遍,如果你能做到如此廣大市場,那才要恭喜你

用databinding至少可以省下很多版面配置的開發人力

1
Homura
iT邦高手 1 級 ‧ 2021-04-23 14:51:52

建議你多去看微軟的文件
label直接指定text就好
但是其他像是DataGridView
除了datatable還能用dataset或是實作IList介面的物件也行
https://docs.microsoft.com/zh-tw/dotnet/api/system.windows.forms.datagridview.datasource?view=net-5.0#---
看看上面連結備註的部分

Camiu iT邦新手 5 級 ‧ 2021-04-23 15:29:39 檢舉

好的,謝謝你

我要發表回答

立即登入回答