新建WPF工程后要做的那些事(MVVM模式)

posted @ 2012-11-25 16:30 from [FreedomShe]

1. 实现单例
2. 加入MVVM支持库Prism。(加速MVVM模式开发)
3. 定义符合Prism属性格式的Code Snippet。(加速开发)


1. 实现单例。fromWPF程序单例实现
  重载App的OnStartup方法:

 1 public partial class App : Application
 2 {
 3     protected override void OnStartup(StartupEventArgs e)
 4     {
 5         Process process = Process.GetCurrentProcess();
 6         foreach (Process p in Process.GetProcessesByName(process.ProcessName))
 7         {
 8             if (p.Id != process.Id)
 9             {
10                 //关闭第二个启动的程序
11                 MessageBox.Show("您的程序已经启动!");
12                 Application.Current.Shutdown();
13                 return;
14             }
15         }
16         base.OnStartup(e);
17     }
18 }

[Go Top]


2. 加入MVVM支持库Prism。from《深入浅出WPF》系列视频(特辑)——MVVM入门与提高(难度300+)

  添加Microsoft.Practices.Prism.dll引用
  工程->引用->右键添加引用->浏览->找到自己的Microsoft.Practices.Prism.dll(如果没有安装Prism需下载解压,地址见下文)

  加入Prism引用后,ViewModel就可以这么写了:

View Code
class MainWindowViewModel : NotificationObject
{
    //属性
    private String newContent;
    public String NewContent
    {
        get { return newContent; }
        set
        {
            newContent = value;
            RaisePropertyChanged("NewContent");
        }
    }
    
    //命令
    public DelegateCommand ConvertStringCommand { get; set; }
    private void ConvertStringExecute()
    {
        //TODO
    }
    //ViewModel的构造函数
    public MainWindowViewModel()
    {
        ConvertStringCommand = new DelegateCommand(new Action(ConvertStringExecute));
    }
}

  下载Prism:http://compositewpf.codeplex.com/releases/view/55576 Prism针对很多应用平台有不同的版本,我下的Prism for .NET 4.5——Microsoft.Practices.Prism.zip 可用于桌面应用开发。我用的这个版本里面只有4个dll,实际上我只需要用一个:Microsoft.Practices.Prism.dll,解压到自己的文件夹即可,开发的时候引用进去。

    Notice: Prism for .NET 4.5需要.NET 4.5框架支持,如果客户机没有安装.NET 4.5 Framework会导致界面无法显示。另外Visual studio 2012编译的程序在Windows XP下无法运行,据说是VS2012加入了XP无法识别的头信息。

[Go Top]


3. 定义符合Prism属性格式的Code Snippet。from 《深入浅出WPF》系列视频(特辑)——MVVM入门与提高(难度300+) 

  VS2010菜单下:工具->代码段管理器->Visual C#下拉菜单->Visual C#选项->propfull

  在“位置”所示路径下找到“propfull.snippet”所在文件夹,新建文件“propn.snippet”,粘贴如下代码

View Code
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 3     <CodeSnippet Format="1.0.0">
 4         <Header>
 5             <Title>propn</Title>
 6             <Shortcut>propn</Shortcut>
 7             <Description>属性和支持字段的代码段 For Prism</Description>
 8             <Author>Microsoft Corporation</Author>
 9             <SnippetTypes>
10                 <SnippetType>Expansion</SnippetType>
11             </SnippetTypes>
12         </Header>
13         <Snippet>
14             <Declarations>
15                 <Literal>
16                     <ID>type</ID>
17                     <ToolTip>属性类型</ToolTip>
18                     <Default>int</Default>
19                 </Literal>
20                 <Literal>
21                     <ID>property</ID>
22                     <ToolTip>属性名</ToolTip>
23                     <Default>MyProperty</Default>
24                 </Literal>
25                 <Literal>
26                     <ID>field</ID>
27                     <ToolTip>支持此属性的变量</ToolTip>
28                     <Default>myVar</Default>
29                 </Literal>
30             </Declarations>
31             <Code Language="csharp"><![CDATA[private $type$ $field$;
32 
33     public $type$ $property$
34     {
35         get { return $field$;}
36         set
37         {
38             $field$ = value;
39             RaisePropertyChanged("$property$");
40         }
41     }
42     $end$]]>
43             </Code>
44         </Snippet>
45     </CodeSnippet>
46 </CodeSnippets>

  于是能看到:

  于是项目中可以使用“propn" 字符串输出代码段了。

[Go Top]


End,告别了MFC时代,跳过了Winform,对有WEB开发经验的人来说WPF暴爽,此贴就用来记录新机配置环境时的个人设置习惯吧。

posted @ 2012-11-25 16:30 FreedomShe 阅读(...) 评论(...) 编辑 收藏