概述
安装MVVMLight的方法网上有很多例子,我使用NUGet 搜索并安装在程序目录下,
http://www.cnblogs.com/chenxizhang/archive/2011/10/01/2197786.html
也可以参照该文章,进行安装
1.安装完成MVVMLight以后 先拿主窗体做实验,将自动生成的Mainviewmodel 绑定到 主窗体上
<Window.DataContext>
<vm:MainViewModel x:Name="mainViewModel" />
</Window.DataContext>
OK绑定完成
但是此时没有任何效果,因为还没有任何的数据绑定。
我们在Mainviewmodel中添加一些数据属性,可以将这些显示到界面中
/// <summary>
/// 总数据
/// </summary>
public List<YourClass> AllList { get; set; }
/// <summary>
/// 展示的数据(已付、未付、已确认)
/// </summary>
public List<YourClass> AllListView { get; set; }
/// <summary>
/// 明细显示数据
/// </summary>
public YourClass ClassDetial { get; set; }
/// <summary>
/// 明细是否显示
/// </summary>
public Visibility DetialVisibility { get; set; } = Visibility.Hidden;
/// <summary>
/// 订单明细是否显示
/// </summary>
public String Title{ get; set; } =你好!;
/// <summary>
/// 订单明细是否显示
/// </summary>
public double num{ get; set; }
后台中需要存储的属性会和前台相互呼应,当你在后台对值操作时,调用通知前台界面也会随之变化。
<TextBlock Text="{Bingding Title}" .......
<TextBlock Text="{Bingding num}" .......
<DataGrid ItemsSource="{Bingding AllListView }"...
<Button Visibility ="{Bingding DetialVisibility }"...
我在编码过程中队列表做了两个数据AllList 、AllListView 因为不想在执行数据操作时影响前台界面显示,所以只用ALLList做数据处理筛选出数据再赋值到AllListView
DetialVisibility = Visibility.Visible;
this.RaisePropertyChanged("DetialVisibility ", DetialVisibility );
//this.RaisePropertyChanged(()=>DetialVisibility );
当你修改完数据界面不会马上改动需要调用方法通知,调用以上代码可以达到通知效果
如果这个也不能通知需要使用
Set("Title",ref Title)
对于命令的绑定是这样的
public ICommand ViewCommand
{
get
{
return new RelayCommand<int>((ViewType) =>
{
DetialVisibility = Visibility.Visible;
this.RaisePropertyChanged("DetialVisibility ", DetialVisibility );
});
}
}
前台
<Button Command="{Binding ViewCommand}" CommandParament="1" .....
CommandParament可以传也可以不传
最后
以上就是害怕花瓣为你收集整理的MVVMLight+WPF的全部内容,希望文章能够帮你解决MVVMLight+WPF所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复