指向同一个视图模型的两个丝带按钮

时间:2013-11-04 15:30:51

标签: wpf module wpf-controls prism-4

我有一个模块,在模块中。我需要两个功能区按钮“创建”和“编辑”。这些按钮指向相同的View和ViewModel。我可以区分这些的唯一方法是使用Ribbon的命令参数属性部分Button.I我正在使用Navigate View移动到View.I想要将其他参数传递给ViewModel构造函数,说调用来自Create或Edit.Any建议?

3 个答案:

答案 0 :(得分:0)

您需要在ViewModel中创建两个不同的命令:

1- CommandEdit - >通过绑定来标记CommandProperty button Edit;

2- CommandCreate - >通过绑定来标记CommandProperty button Create

羞耻命令行为中的共享逻辑不是好主意。

答案 1 :(得分:0)

RibbonButton有一个Tag属性:

http://msdn.microsoft.com/en-us/library/microsoft.windows.controls.ribbon.ribbonbutton.ASPX http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.tag.ASPX

定义按钮时,可以为每个功能区按钮设置Tag属性。然后,您可以在事件处理程序中提取Tag值并做出相应的反应。

答案 2 :(得分:0)

我会将CreateEdit按钮绑定两个不同的Commands,例如CreateCommandEditCommand。我会在Command的相应Execute方法中传递有关调用者的任何其他详细信息。

示例代码:

void CreateCommandExecute(object o)
{
   YourMethod("Create", o);
}

void EditCommandExecute(object o)
{
   YourMethod("Edit", o);
}

void YourMethod(string caller, object commandParameter)
{
   // Your logic goes here
}