为什么Menuitem不发送指定参数,但按钮发送
-
30-09-2019 - |
题
<MenuItem Command="local:CommandLibrary.RegisterServiceCommand">
<MenuItem.CommandParameter>
<MultiBinding Converter="{StaticResource TrayWindowViewModelConverterResource}">
<MultiBinding.Bindings>
<Binding ElementName="Me" />
<Binding FallbackValue="Parser" />
</MultiBinding.Bindings>
</MultiBinding>
</MenuItem.CommandParameter>
</MenuItem>
public class TrayWindowViewModelConverter : IMultiValueConverter {
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) {
var viewModel = new Window1ViewModel();
foreach (var obj in values) {
if (obj is Window)
viewModel.Caller = obj as Window;
else if (obj is string)
viewModel.ServiceName = obj.ToString();
}
return viewModel;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) {
throw new NotImplementedException();
}
}
Button Cammand与Menuitem完全相同。当我调试Menuitem的转换器时,值参数包含两个对象:depentencyProperty.unsetValue(我不知道这是什么)和mycontextmenu对象。
以及如何将某个人传递为参数?谢谢
解决方案
Menuitems存在于主视觉树外部的弹出窗口中,因此没有像您的按钮那样具有与周围元素相同的名称范围。当尝试绑定时,元素名绑定无法解决,因为“我”元素不在Menuitem的名称范围之外。
不隶属于 StackOverflow