1. 程式人生 > >WPF MVVM 架構 Step By Step(4)(添加bindings - 完全去掉後臺代碼)

WPF MVVM 架構 Step By Step(4)(添加bindings - 完全去掉後臺代碼)

發送 要去 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 - 完全去掉後臺代碼)