簡體   English   中英

用於在堆棧面板中動態添加控件的WPF Fire事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM