我是 mvvm 概念的初学者。所以我尝试了一个示例应用程序。它包含两个文本框,分别是名称和 id、一个提交按钮、一个标签。当我单击提交按钮时,它结合了文本框中的两个字符串并显示在标签中。
我可以提交值,并且在 viewmodel 中属性包含结果。但它没有显示在 view.why..?
在视图中包含
<grid>
<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding name}" Height="23" Margin="9" Name="txtname" Width="120" />
<TextBox Grid.Column="1" Grid.Row="2" Text="{Binding id}" Height="23" Margin="9" Name="txtid" Width="120" />
<Button Command="{Binding submit}" Content="submit" Grid.Column="2" Grid.Row="2" Height="23" Name="btnsubmit" Width="75" />
<Label Content="{Binding display}" Grid.Row="3" Height="38" HorizontalAlignment="Left" Name="lbldisplay" Width="192" />
</grid>
view.cs 代码是
public MainWindow()
{
InitializeComponent();
DataContext = new DemoViewModel();
}
在我的视图模型中包含两个 .cs 文件
一个是 DemoViewModelInotify.cs。在此我为 inotifypropertychanged 编写代码。另一个是 DemoViewModel.cs.this 包含属性和命令。
namespace mvvmdemonixon.ViewModel
{
public class DemoViewModel :DemoViewModelInotify
{
public ICommand submit { get; set; }
public string name { get; set; }
public string display { get; set; }
public int id{get;set;}
public DemoModel model { get; set; }
public DemoViewModel()
{
submit = new DelegateCommand<object>(this.add);
}
public void add(object paramter)
{
string a= mvvmdemonixon.Model.DemoModel.addstring(name, id);
display = a;
}
}
}
我的模型包含
namespace mvvmdemonixon.Model
{
public class DemoModel
{
public static string addstring(string name1, int no1)
{
string display = "The Student Name Is " + name1 + "and Id Is" + no1 + ".";
return display;
}
}
}
在我的 app.xaml.cs
private void OnStartup(object sender, StartupEventArgs e)
{
mvvmdemonixon.MainWindow view = new MainWindow();
view.DataContext = new mvvmdemonixon.ViewModel.DemoViewModel();
view.Show();
}
在我的应用程序 xaml
<Application x:Class="mvvmdemonixon.App"
Startup="OnStartup">
</Application>
提前谢谢..