2015-07-15 2 views
4

В настоящее время у меня есть ObservableCollection пользовательских объектов, которые находятся в моей модели ViewModel. Эта коллекция привязана к свойству ItemsSource в ListBox на мой взгляд, где каждый элемент в коллекции отображается как RadioButton.WPF RadioButton Command binding

С помощью этих переключателей я пытаюсь, чтобы они выполняли команду реле, когда кнопка отмечена (при условии, что я должен привязать свойство Command к команде реле), и я не думаю, что это правильный путь для достижения этой цели, как эта ошибка появляется: Ошибка пути

  • BindingExpression::

    • System.Windows.Data Ошибка: 40 свойство 'SelectCommand' не найден 'объект' '' «(CustomObject HashCode = 37826814).
    • BindingExpression: Path = SelectCommand;
  • DataItem = 'CustomObject' (HashCode = 37826814);
  • Целевой элемент - «RadioButton» (Name = '');
  • свойство цели является «Command» (тип «ICommand»)

Является ли это потому, что он пытается искать команды в CustomObject, а не ViewModel вместо этого? Как это можно зафиксировать?

Любая помощь по этому вопросу будет оценена по достоинству.

ответ

3

Is this because it is trying to look for the command within the CustomObject, rather than the ViewModel instead?

Это правильно, вы должны связать с DataContext элемента, который имеет DataContext установить в качестве ViewModel.

Хорошей идеей было бы связать с родителем ListBox.

{Binding DataContext.SelectCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}} 
+0

Это решило его! Приветствия. – sunnysesh