У меня есть WrapPanel, с помощью Children[0].MouseDown += *Событие*
я хочу добавить событие в которое можно было бы передать переменную, в будущем я планирую там послать запрос на сервер и нужно чтобы была переменная с id (http://сайт/api/rooms/id ), но стандартная функция типа
private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show(e.Source.ToString());
}
не хочет принимать в аттрибуты int i
и в MouseDown
происходит ошибка.
В общем какое событие можно навесить на элемент чтобы можно было при нажатии отправить id?
Можно както при создании изборажения, в фигурные скобки определить событие нажатия и указать ему метод? stack.Children.Add(new Image {Height = 225, Width = 236, Source = logo, Stretch = Stretch.Fill,});
Можно:
Image image = new Image { Height = 225, Width = 236, Source = logo, Stretch = Stretch.Fill };
image.MouseDown += (s, e) => MyMethod(myId); // MyMethod — ваш метод для отправки, myId — ваш id или любой другой параметр
stack.Children.Add(image);
Хотя, если что-то должно вести себя как кнопка, то оно и должно быть кнопкой, WPF дает нам для этого все возможности: стилизуйте обычный Button
— поместите ему изображение в Content
или даже в шаблон.
Ну и, как вам подсказали в комментариях, желательно разделить логику и представление, использовать всю мощь автогенерации контролов с помощью ItemsPanel
. Тогда ваш код превратится во что-то вроде такого:
<ItemsControl ItemsSource="{Binding MyItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Command="{Binding SendCommand}" CommandParameter="{Binding Id}"
Template="{StaticResource MySendButtonTemplate}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
И кучка небольших классов (настоящее ООП ;) ) VM, представляющих ваши объекты из предметной области вашей программы.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите как сделать работу MediaElement с использованием паттерна MVVMЯ сделал дизайн VideoPlayer осталось только с помощью кнопок управлять воспроизведением...
Каким образом можно вывести выборку на основе модели данныхно с полями в ней не описанными? Например имеется контроллер:
Ребята подскажите как правильно сравнить дату? у меня есть запрос в бд, там отбирает строки и возвращает результат, как коллекцию обьекта...