我在學習MVVM和WPF。我在我的項目中有一個xaml
文件,並且在後面的代碼中有一個簡單的單擊事件處理程序。使用MVVM在WPF中綁定命令
現在我想在MVVM中做同樣的事情。我閱讀了許多文章,並閱讀了很多答案。但仍然無法做到這一點。
誰能請舉一個簡單的例子,其中一個按鈕點擊事件在MVVM完成。
編輯提前
<Window x:Class="WhiteBalance.BaseCalWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uc="clr-namespace:NumberUpDownControl;assembly=NumberUpDownControl"
xmlns:viewn="clr-namespace:WhiteBalance.ViewModels"
Title="RefImgSettingWindow" Height="900" Width="1000" ResizeMode="NoResize"
BorderThickness="4">
<Window.Resources>
<viewn:DashBoardViewModel x:Key="demokey"></viewn:DashBoardViewModel>
</Window.Resources>
<Grid x:Name="gdParent" DataContext="{StaticResource demokey}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="490" />
<ColumnDefinition Width="488*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="300" />
<RowDefinition Height="300" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0">
<Label Content="{Binding Path=NAME,Mode=TwoWay}" Height="28" Name="lblTest" />
<Button Content="Capture" Height="23" Name="btnCapture" Width="75" Command="{Binding Path=SaveCommand}"
Canvas.Left="94" Canvas.Top="254" />
</StackPanel>
</Grid>
</Window>
namespace WhiteBalance.ViewModels
{
public class DashBoardViewModel: ObservableObject
{
private string _name = "dsqdasd";
public string NAME
{
get { return _name; }
set { _name = value; }
}
public ICommand SaveCommand
{
get;
set;
}
private bool CanExecuteSaveCommand()
{
return true; // !string.IsNullOrEmpty(LastName);
}
private void CreateSaveCommand()
{
SaveCommand = new RelayCommand(SaveExecute, CanExecuteSaveCommand);
}
public void SaveExecute()
{
//Person.Save(_newPerson);
NAME = "Changed Name";
}
public DashBoardViewModel()
{
//objModel.TestText = "This will change";
NAME = "TestName";
}
}
}
感謝。
您是否使用任何MVVM框架?你有什麼嘗試? – 2013-05-01 08:25:25
使用MVVM框架是強制性的嗎?我不知道有任何框架。我唯一得到的是我需要使用ICommand,但是如何使用這個以及ViewModel需要哪些更改,我不知道。 – Narendra 2013-05-01 08:28:40
不,但它有助於很多,我建議MVVM光http://www.galasoft.ch/mvvm/ – 2013-05-01 08:30:53