我已经创建了一个实现TextBox的ICommandSource,在大多数情况下,我使用了一个来学习微软的例子。这个TextBox将在按下"Enter“键时执行绑定命令。这部分行为正常工作,我遇到的问题是IsEnabled不能再在XAML中设置?我不知道为什么,您仍然可以在像Button这样的原生微软类上设置IsEnabled。
public class CommandTextBox : TextBox, ICommandSource
{
// The DependencyProperty for the Command.
public static readonly
你好,欧弗花同胞:
我有一个Relay命令类,它在几个不同的上下文中使用。当我绑定到矩形(形状)时,不调用CanExecute()方法。但是,当我将同一个类绑定到一个MenuItem CanExecute()时,将被调用。当我开始查看菜单时,它似乎会被调用。当CanExecute回复为false时,我的菜单项是灰色的。非常好!然而,我的应用程序有很多形状与CanExecute实现。到目前为止,我必须从Excecute()方法中调用CanExecute来获取形状。顺便说一句,我正在用MouseBehaviors绑定建筑中的形状。
using System;
using System.Collec
我的应用层使用DialogPresenters在各种对话框(模态、启动屏幕等)中显示一些ViewModels。
public DataImportDialogPresenter(DataImportViewModel viewModel, IDialogView shellView, IDialogView owner)
: base(viewModel, shellView, owner)
{
//Base sets the view data context etc.
//Monitor CancelCommand and c
我正在使用RelayCommands (他们在一个单独的类中)工作了大约一个月,我觉得他们在声明它们时有点笨重。下面我有三种方法,我可以考虑如何声明一个RelayCommand。
在第一种情况下,我声明我的ICommand,然后在加载ViewModel时,构造指向代码中的方法的RelayCommand。
public class MyViewModel
{
public ICommand MyCommand { get; private set; }
public MyViewModel()
{
MyCommand = new RelayCommand
我试图教自己一个新的模式,命令模式,并提出了下面的例子。寻求反馈。
public class BaseTool
{
private List<ICommand> CommandHistory = new List<ICommand>();
public string State = string.Empty;
public BaseTool()
{
}
public virtual void ExecuteCommand(ICommand cmd)
{
if (cmd.CanExecute
我正在创建一个Menu,并按如下方式在运行时绑定MenuItem,但我无法使它工作。
我创建Menu的步骤如下:
Menu menu = new Menu();
menu.Items.Add(new MenuItem { Command = new PackCommand(), Header = "Pack" });
DockPanel.SetDock(menu, Dock.Top);
content.Children.Add(menu);
我正在实现ICommand
public static class PackCommand : IComma
我现在一直在寻找一种方法来将命令绑定到一个按钮上,该按钮应该在我的ViewModel中提示一个异步函数,并且应该可以启动调用并能够取消调用。我已经看了Stephen Cleary的教程,并试图将它们转换为我的需求,尽管命令管理器不存在于AsyncCommandBase的当前上下文中,并且当您查看他的git项目代码时,它与他的教程中的完全不同……我不知道从哪里继续得到我的答案,所以我们开始吧。我有一个ViewModel,它应该运行一个异步的函数,并且应该通过单击一个按钮来运行?有没有办法在不写新的库的情况下完成这项工作?我做了一个界面,看起来像这样…… using System;
using