#c# #silverlight #xaml #listbox
#c# #silverlight #xaml #список
Вопрос:
По сути, я динамически добавляю элементы в список. Внутри каждого элемента списка я также добавил элемент управления кнопкой, который будет выполнять определенное действие над элементом, из которого была нажата кнопка.
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Title"/>
<Button Click="MyBtn_Click"/>
</StackPanel>
</DataTemplate>
Кто-нибудь знает, как определить, из какого элемента была нажата кнопка? Я знаю, что каждый элемент списка содержит индекс. Я думаю, если бы вы могли получить доступ к родительскому элементу кнопки, вы могли бы определить, какая кнопка была нажата?
Ответ №1:
Вы могли бы использовать CommmandParameter кнопки для хранения значения —
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Title}"/>
<Button Click="MyBtn_Click" CommandParameter={Binding Title}/>
</StackPanel>
</DataTemplate>
public void MyBtn_Click(object sender, args)
{
string MyVal = (sender as Button).CommandParameter.ToString();
}
Соглашение заключается в использовании события Command вместо события click для такого рода вещей.