Frage

<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 ist genau das gleiche wie MenuItem. wenn ich debuggen Converter für MenuItem- Werte Parameter zwei Objekt enthält. DependencyProperty.UnsetValue (ich bin mir nicht bewusst, was das ist) und myContextMenu Objekt

Und auch, wie kann ich als Sometype-Parameter übergeben? Dank

War es hilfreich?

Lösung

MenuItems existiert in Pop-ups, die außerhalb der Haupt-visuellen Struktur sind und so haben nicht den gleichen Namen wie Umfang umgebende Elemente, wie Ihr Knopf. Wenn zu binden versucht, kann das Element Bindung nicht lösen, da der „Me“ Element außerhalb des Namensbereich des MenuItem ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top