Предполагая следующее определение модели представления:
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>
How can I bind my Button
to the ICommand
property of my code-behind class?
Я использую Prism и SL 3.0, и мне нужно привязать каждую кнопку в моем списке к одной и той же команде в моей модели представления.
Раньше у моего UserControl
было определенное имя, и я мог использовать привязку ElementName
, но теперь мой UserControl
используется несколько раз в одном и том же родительском представлении, поэтому я больше не могу использовать эту технику и не могу понять, как это сделать. в XAML.
Если это мой единственный вариант, я могу сделать это вручную в коде программной части, но я бы предпочел сделать это декларативно в XAML, если это возможно.