程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 淺談WPF中的Command事件綁定

淺談WPF中的Command事件綁定

編輯:關於.NET

在項目中使用Command綁定能夠使我們的代碼更加的符合MVVM模式。不了解的同學可能不清楚,只有繼承自ButtonBase類的元素才可以直接綁定Command(Button、CheckBox、RadioButton等)

<Button Content="Normal" Command="{Binding NormalEventCommand}" ></Button>

如果我們要處理Label或者其他的一些控件,那麼只能在走事件:

<Label Content="Label Event" MouseDoubleClick="Label_MouseDoubleClick_1"></Label>

這樣的話,我們不得不在窗體類中處理事件代碼和部分邏輯,這樣就無法得到干淨的MVVM模式了,那麼我們應該怎麼做呢?

Blend為我們提供了解決方案,我們安裝Blend以後,便可以獲取到System.Windows.Interactivity.dll,添加該dll到項目引用

<Window x:Class="WpfApplication1.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
        xmlns:vm="clr-namespace:WpfApplication1"
        Title="Window2" Height="124" Width="214">
    <Window.DataContext>
        <vm:Window2ViewModel  />
    </Window.DataContext>
    <Grid>
        <Button Name="btn" Content="Button" Height="33" HorizontalAlignment="Left" Margin="40,24,0,0" VerticalAlignment="Top" Width="109">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Click">
                    <i:InvokeCommandAction Command="{Binding Command1}" CommandParameter="10"  />
                </i:EventTrigger>
                <i:EventTrigger EventName="MouseMove">
                    <i:InvokeCommandAction Command="{Binding Command2}" CommandParameter="{Binding ElementName=btn}"  />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>
    </Grid>
</Window>

需要注意Window標簽中的

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity",這裡相當於後台的using System;之類的加載程序集的功能

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved