WPF MVVM 架構 Step By Step(4)(添加bindings - 完全去掉後臺代碼)
阿新 • • 發佈:2018-06-04
發送 要去 idt leak 事情 right 規範 ron source 原文:WPF MVVM 架構 Step By Step(4)(添加bindings - 完全去掉後臺代碼)
之前的改進已經挺棒的,但是我們現在知道了後臺代碼的問題,那是否可能把後臺代碼全部去除呢?這時候就該WPF binding 和 commands 來做的事情了。
WPF就是以超吊的binding,commans和聲明式編程而聞名的。聲明式編程意思就是相比於全部用C#代碼來寫,我們也可以用XAML來表示c#代碼。Binding可以幫助我們把2個不同的WPF對象連接起來來發送和接收數據。
你看到現在的映射C#代碼有3個步驟:
- 引入:首先要做的第一件事情就是引入CustomerViewModel命名空間。
- 創建對象:第二件事情是我們創建一個CustomerViewModel類的對象。
- 綁定代碼:最後我們把WPF UI和view model對象綁定在一起。
下面是一個用來展示C#代碼和XAML代碼的表格
Import | C# code | XAML code |
Import | using CustomerViewModel; | xmlns:custns="clr- namespace:CustomerViewModel;assembly=Custo merViewModel" |
Create object |
CustomerViewModelobj = new CustomerViewModel(); obj.CustomerName = "Shiv"; obj.Amount = 2000; obj.Married = "Married"; |
<Window.Resources>
<custns:CustomerViewModel
x:Key="custviewobj"
TxtCustomerName="Shiv" TxtAmount="1000" IsMarried=”true”/>
|
Bind | lblName.Content = o.CustomerName; |
<Label x:Name="lblName" Content="{Binding
TxtCustomerName,
Source={StaticResourcecustviewobj}}"/>
|
你不需要去寫後臺的綁定代碼,我們可以選擇一個UI元素,按F4再去選擇所要綁定的屬性,這個步驟會把代碼插入到XAML裏面去,當然也可以自己手寫。
指定映射的時候你可以選擇StaticResource然後指定在view model和UI元素之間的綁定。
如果你去看xaml.cs中的後臺代碼,你會發現根本沒有任何GLUE代碼,也沒有轉換和映射的代碼。唯一有的代碼只有WPF用來初始化WPF UI的規範代碼。
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } }
WPF MVVM 架構 Step By Step(4)(添加bindings - 完全去掉後臺代碼)