Pregunta

<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 botón es exactamente igual que Menultem. cuando puedo depurar Converter para Menultem, los valores de parámetros contiene dos objetos:. DependencyProperty.UnsetValue (no soy consciente de lo que es esto?) y el objeto myContextMenu

Y también cómo puedo pasar SomeType como parámetro? Gracias

¿Fue útil?

Solución

Existen

MenuItems en ventanas emergentes que están fuera del árbol visual principal, así que no tienen el mismo alcance nombre como elementos que lo rodean, como su botón. Al tratar de atar el ElementName vinculante no puede resolver porque el "Me" elemento está fuera de alcance el nombre del Menultem.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top