[英]WPF Fire event for dynamically added control in stack panel
我正在為List中的每個項目添加一個單選按鈕添加一個單選按鈕,這種情況沒有問題。 (它會添加4或6個單選按鈕,因為這些按鈕會列在我的列表中)。
foreach (var nearestgage in nearestgages)
{
StackPanel.Children.Add(new RadioButton { Content = nearestgage.GageSize.ToString(), Margin = new Thickness(1, 1, 1, 1) });
}
現在我想要做的是在運行時選擇任何這些動態創建的單選按鈕。 我想開一個活動。 所以我在想的是我必須將一個處理程序附加到單選按鈕上。 我嘗試了一些方法,但不能這樣做。 我在網格中有另一個單選按鈕,它也不屬於這個組。 請建議這樣做的理想方法。
這是一個小樣本,在生成時將事件添加到單選按鈕。
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Loaded="Window_Loaded">
<StackPanel Name="StackPanel">
</StackPanel>
</Window>
C#
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 1; i <= 10; i++)
{
RadioButton rb = new RadioButton();
rb.Content = "Item " + i.ToString();
rb.Click += rb_Click;
StackPanel.Children.Add(rb);
}
}
void rb_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show((sender as RadioButton).Content.ToString());
}
}
要處理單獨的單選按鈕操作,請設置組名稱:
rb.GroupName = "Dynamic";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.