小编Pau*_*son的帖子

带参数的 ICommand

我发现了这个:Close Window from ViewModel这让我开始修改我的 DelegateCommand 类来处理参数。但我无法解决语法问题。

这是我的 DelegateCommand 类,以及我尝试创建但收效甚微的 DelegateCommand 类:

    public class DelegateCommand : ICommand
    {
        private readonly Action _action;

        public DelegateCommand(Action action)
        {
            _action = action;
        }

        public void Execute(object parameter)
        {
            _action();
        }

        public bool CanExecute(object parameter)
        {
            return true;
        }

#pragma warning disable 67
        public event EventHandler CanExecuteChanged { add { } remove { } }
#pragma warning restore 67
    }

    public class DelegateCommand<T> : ICommand
    {
        private readonly Action _action;

        public DelegateCommand(Action action) …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm

2
推荐指数
1
解决办法
9845
查看次数

WPF Revit 插件的最佳起点

我想重写我的 Revit 插件之一,以便它通过 MVVM 使用 WPF,因为与 Windows 窗体相比,我更喜欢 WPF 的外观和功能。

我已将 Jeremy Tammik 的 Revit 模板向导用于基于表单的加载项,但添加 WPF 用户控件似乎不起作用(无法找到 xaml 资源的运行时错误)。

我在示例中找到了一个 WPF MVVM revit add(AddMaterials,这里是 github 链接,它将从 Excel 电子表格添加材料),但它不符合我期望在顶层看到的内容。

  • Revit Add ins 有一个 app.cs 文件,它告诉 Revit 如何注册和访问 DLL(功能区面板按钮等)。
  • Windows WPF 应用程序将 app.xaml 作为顶级入口点。
  • 添加材料项目两者都没有,这告诉我它必须是一个类库,但是视图没有使用 UserControls,而是我更喜欢的 Windows。但是,Visual Studio 不允许您为类库类型项目添加窗口。

第三个问题很容易解决,只需将 WPF 应用程序项目中的窗口复制到类库项目中即可。但我不太明白如果不遵循模板中的 app.cs 代码,类库将如何在 Revit 中实例化。还有其他人以这种方式创建加载项吗?如果是的话,您能让我了解任何有帮助的技巧或讨论吗?有人为 Visual Studio 创建了 WPF Revit 插件模板吗?

当我添加 WPF 窗口并尝试实例化它时,出现错误,指出找不到 xaml 资源(System.IO.IOException:无法找到资源“xxxx.xaml”)。我尝试根据谷歌搜索此错误时找到的建议来修复此问题,但无济于事。我认为它来自于基于表单的项目,并且我可能必须从一个没有表单内容的新项目开始。

我现在已经验证,您确实可以从 Revit AddIn Wizard 开始并使用 WPF 。。。我从头开始,复制到另一个项目中创建的窗口中并让它运行(在添加各种引用、命名空间等之后)。所以我的问题似乎只是与原始项目有关,它已经添加了一堆表单内容。

wpf mvvm revit-api

2
推荐指数
1
解决办法
4451
查看次数

标签 统计

mvvm ×2

wpf ×2

c# ×1

revit-api ×1