2016-10-24 83 views
3

我不明白LiveBinding的用途。我想知道哪些是LiveBinding最有價值的情況。 Embarcadero的手冊描述了它:「LiveBindings是RAD Studio中VCL和FireMonkey框架支持的數據綁定功能,LiveBindings是一個基於表達式的框架,這意味着它使用bin dings表達式將對象綁定到其他對象或數據集字段」。
謝謝,但我仍然不知道比以前更多。LiveBinding的用法

我看過一些視頻,其中一個傢伙花費12分鐘和百分之一點擊將TLabel的標題連接到TListBox控件。當用戶單擊列表框中的項目時,項目的名稱顯示在標籤中。我可以用一行代碼完成這項工作(幾次擊鍵和鼠標點擊)。 我不批評LiveBinding。我說我不明白它在哪裏有幫助。我錯過了一些東西。由於沒有做一些無法從代碼中完成的事情,因此它意味着它可以通過代碼完成某些工作,但在視覺上要快得多。我承認我並沒有在這個主題上投入很多時間,但是在我看來,我看到了一種非常複雜的方式(來吧,你真的需要5個額外的控件來讓LiveBinding工作?)來完成一個簡單的任務。

此外,LiveBinding似乎主要是爲DB設計的。所有示例都將包含某種數據庫連接。但是我只對可以使用LiveBindings並且沒有涉及數據集/數據庫的情況感興趣。我沒有使用數據庫那麼多。

回答

4

我很懷疑任何人都會使用活動綁定,如果他們可以使用傳統的db-aware VCL組件。但是,對於非VCL項目(​​Android,Apple等)而言,這不是一個選項,而活動綁定是唯一的Emba提供的將數據傳遞給TDataSet後代的選項。

活動綁定的一個優點是除了Android和Apple目標之外,您可以在Windows應用程序中使用它們,因此您可以爲所有三種應用程序編寫相同的(基於FMX的)應用程序。

Libe結合可以在VCL應用程序也可以使用,但TBH,我無法想象爲什麼,如果他們只針對一個Windows DB應用程序會有人使用實時綁定,因爲他們是慢而不是傳統的db-aware控件,特別是多行的網格。

我還沒有嘗試過自己,但因爲活動綁定的實現是基於接口的,所以它的潛在用途遠遠超出了數據庫應用程序,但是您必須自己實現這些接口。它似乎基於一個相當抽象的表達式評估引擎。

設置l.b.項目在IDE中似乎需要比傳統的VCL應用程序更多的點擊,但主要是因爲在告訴IDE如何將gui對象綁定到數據源)。然而,如果你願意的話,直接將代碼完全綁定到代碼中是非常簡單的。

+0

Hm ...由於我只做VCL,非數據庫應用程序,我不知道是否可以禁用LiveBindings包:) – Ampere

+1

如果您轉到組件|在IDE中安裝軟件包,您應該看到3個LB包相鄰,Embarcadero LiveBindings組件和另外兩個包。如果你願意,可以刪除它們,但是我不確定在IDE中的工作情況。 – MartynA

+0

加載時間可能小於1秒+ Object Inspector中的屬性更少。特別是最後一個很吸引人,因爲有很多我從未用過的屬性。如果IDE將重要屬性(名稱,值,位置,對齊方式,標題,文本等)放在列表​​的頂部,那將會很不錯! – Ampere