Предполагая следующее определение модели представления:
public class MyObject {
public string Name { get; set; }
}
public interface IMyViewModel {
ICommand MyCommand { get; }
IList<MyObject> MyList { get; }
}
И UserControl со следующим кодом:
public class MyView : UserControl {
public IMyViewModel Model { get; }
}
Если мой XAML выглядел так:
<UserControl>
<ListBox ItemsSource="{Binding MyList}">
<ListBox.ItemTemplate>
<TextBlock Text="{Binding Name}" />
<Button Content="Execute My Command" cmd:Click.Command="{Binding Path=MyCommand, ?????????}" cmd:Click.CommandParameter="{Binding}" />
</ListBox.ItemTemplate>
</ListBox>
Как я могу связать свой Button
со свойством ICommand
моего класса code-behind?
Я использую Prism и SL 3.0, и мне нужно привязать каждую кнопку в моем списке к одной и той же команде на моей модели представления.
Раньше у моего UserControl
было определенное имя, и я мог использовать привязку ElementName
, но теперь мой UserControl
используется несколько раз в одном родительском представлении, поэтому я больше не могу использовать эту технику, и я не могу понять, как это сделать в XAML.
Если это мой единственный вариант, я могу сделать это вручную в коде, но я бы предпочел сделать это декларативно в XAML, если это возможно.