WPF创建命令库

时间:2011-01-21 21:53:58

标签: wpf class xaml binding

WPF / XAML的新手,并希望为我的应用程序构建一个Command库。我的应用程序的当前版本是“平坦的”意味着后面的所有代码都驻留在我的MainWindow.cs文件中。我决定将内容分成用户控件,到目前为止所有的UI部分都很好用,但是....

我现在无法将我的命令绑定到事情上。为简单起见,我创建了一个新的WPF项目,添加了我的Menu控件(Controls \ Menu.xaml)并在我的MainWindow.xaml中引用了它。现在,我已经继续并添加了一个CommandLibrary类,似乎无法正常工作。这是我的文件 - >新命令代码:

public static class MyAppCommands
{

    private static RoutedUICommand _NewItem;

    static MyAppCommands()
    {
        _NewItem = new RoutedUICommand("Create a new project", "NewItem", typeof(MyAppCommands));  
    }

    public static RoutedUICommand NewItem
    {
        get { return _NewItem; }
    }

    private string filePath = null;
    private bool dataChanged = false;

    public static void NewItem_Executed(object sender, ExecutedRoutedEventArgs e)
    {

        if (dataChanged)
        {
            string sf = SaveFirst();
            if (sf != "Cancel")
            {
                ClearState();
            }
        }
        else
        {
            ClearState();
        }
    }

    public static void NewItem_CanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = true;
    }

    public static void BindCommandsToWindow(Window window)
    {
        window.CommandBindings.Add(new CommandBinding(NewItem, NewItem_Executed, NewItem_CanExecute));

    }

我将下面的内容放在我的课堂上,因为我的很多命令都会使用它们??

private string filePath = null;
private bool dataChanged = false;

非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为您可以从设置MVC或MVVM等设计模式中受益。

查看这些框架:

您也可以使用几个小帮助程序类跟踪MVC或MVVM,查看网络上的参数,例如MVVM

如果你想要一个轻量级的框架,请检查一下:MVVM Foundation