MVVM初步搭建应用_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > MVVM初步搭建应用

MVVM初步搭建应用

 2015/4/20 18:13:30  奮鬥的QB  程序员俱乐部  我要评论(0)
  • 摘要:MVVM模式:利用prismMicrosoft.Practices.Prism.dllWPFInteraction框架简介添加Interactions库的引用。主要添加如下两个DLL:Microsoft.Expression.Interactions.dll和System.Windows.Interactivity.dll(一般系统自带),像Load时候的command要先引用xmlns:i="http://schemas.microsoft
  • 标签:应用

MVVM模式:
利用 prism Microsoft.Practices.Prism.dll
WPF Interaction框架简介 添加Interactions库的引用。主要添加如下两个DLL:
Microsoft.Expression.Interactions.dll和System.Windows.Interactivity.dll(一般系统自带),像Load时候的command
要先引用
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ig="http://schemas.infragistics.com/xaml"

调用方式:

<i:Interaction.Triggers>
        <i:EventTrigger>
            <i:InvokeCommandAction Command="{Binding LoadCommand}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
<!--ComboBox绑定下拉列表-->
<ComboBox x:Name="cbYear" ItemsSource="{Binding 

Path=YearList,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Path=SelectedYear}">
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="SelectionChanged" SourceObject="{Binding 

ElementName=cbYear}">
                                <i:InvokeCommandAction Command="{Binding YearChangedCommand}" 

CommandName="YearChangedCommand"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </ComboBox>

绑定按钮用  Command 如Command="{Binding LoginCommand}"

在设计界面:<Button Content="登录" Name="btn_Login" Command="{Binding LoginCommand}"></Button>

在cs也可以写:

this.btn_Login.Click += new RoutedEventHandler(btn_Login_Click);
MainWindowViewModel viewModel = new MainWindowViewModel();
void btn_Login_Click(object sender, RoutedEventArgs e)
{
viewModel.LoginCommand.Execute();
}

接下来就要写view对应的ViewModel了 MainWindowViewModel,如果需要绑定界面值,如textbox文本框,能够动态显示值
,这个需要用到Prism,类需要集成NotificationObject

public class MainWindowViewModel : NotificationObject
    {
        private string _userName= string.Empty;
        public string UserName
        {
            get { return _userName; }
            set
            {
                _userName = value;
                RaisePropertyChanged("UserName");
            }
        }
    //定义Command
        public DelegateCommand LoadCommnad { get; set; }
 public MainWindowViewModel()
        {
            this.LoginCommand = new DelegateCommand(Login);//Command调用Login方法
        }
//响应Command
 private void Login()
        {
            if (string.IsNullOrEmpty(UserName))
            {
                UserName = "用户名为空";//前台文本框会显示
            }
        }
}

 

发表评论
用户名: 匿名