لماذا لا يرسل 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();
}
}
زر Cammand هو بالضبط مثل menuitem. عندما أقوم بتصحيح محول Menuitem ، تحتوي معلمة القيم على كائنين: DependencyProperty.UnsetValue (لست على علم بما هذا) وكائن MyContextMenu.
وأيضًا كيف يمكنني تمرير Sometype كمعلمة؟ شكرًا
المحلول
توجد menuitems في المنبثقة التي تقع خارج الشجرة المرئية الرئيسية ، وبالتالي لا تملك نفس نطاق الاسم مثل العناصر المحيطة ، مثل الزر الخاص بك. عند محاولة الربط ، لا يمكن حل ملزمة elementName لأن عنصر "أنا" خارج نطاق اسم Menuitem.
لا تنتمي إلى StackOverflow