Динамические радиокнопки, как мне подключить их, чтобы сделать событие? - PullRequest
1 голос
/ 08 мая 2019

У меня есть репозиторий, каждая картинка, я хочу радиопереключатель в моей обертке. Я хочу подключить все эти радиокнопки к событию, поэтому, когда один из них отмечен, все свойства изображений отображаются на экране.

Проблема в том, что по какой-то причине я не могу получить доступ к элементам событий radiobutton при их создании.

Я пробовал Google, не могу найти ту же проблему

public void UpdatePictures(PictureRepo pictureRepo)
       {
           foreach (var picture in pictureRepo.RepoCollection)
           {



               WP_mainWrapPanel.Children.Add(new RadioButton
               {

                   Margin = new Thickness(2, 10, 2, 10),
                   Height = 100,
                   HorizontalAlignment = HorizontalAlignment.Center,
                   VerticalAlignment = VerticalAlignment.Top,
                   Content = new Image { Source = new BitmapImage(new Uri(picture.PictureLink, UriKind.Relative)) },
                   Name = picture.Name.ToString(),



           });


           }
       }

Радиокнопки имеют событие, если кнопка отмечена, я не могу получить к ней доступ по какой-либо причине.

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Вам нужно создать свою кнопку и сохранить ссылку на нее. Затем вы можете добавить обработчик событий.

var btn = new RadioButton
{
    Margin = new Thickness(2, 10, 2, 10),
    Height = 100,
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Content = new Image { Source = new BitmapImage(new Uri(picture.PictureLink, UriKind.Relative)) },
    Name = picture.Name.ToString(),
};
WP_mainWrapPanel.Children.Add(btn);
btn.Checked += btn_Checked;

Определение события выглядит примерно так

private static void btn_Checked(object sender, RoutedEventArgs e)
{
    //do stuff
}
1 голос
/ 08 мая 2019

Попробуйте это:

    private void SetupRadioButton()
    {
        RadioButton radio1 = new RadioButton
        {
            Text = "Your Properties Here",
        };
        radio1.CheckedChanged += Radio1_CheckedChanged;
    }

    private void Radio1_CheckedChanged(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...