提问人:signor rossi 提问时间:12/5/2022 最后编辑:signor rossi 更新时间:12/5/2022 访问量:75
WPF C# 使用 Windows 组件管理来自不同类的事件
WPF C# Manage events from different class with windows components
问:
我想创建一个具有不同窗口元素的个人组件。为了简单起见,这里只有一个标签和三个radiobtn。现在,我决定创建一个简单的新类,而不是扩展其他类。
class BoxActionPlayer
{
public StackPanel stkPanel { get; set; }
Label lbl;
RadioButton rdBtn1;
RadioButton rdBtn2;
RadioButton rdBtn3;
RadioButton rdBtn4;
public BoxActionPlayer(string actionPlayer)
{
InitializeComponent(actionPlayer);
}
private void InitializeComponent(string actionPlayer)
{
stkPanel = new StackPanel();
lbl = new Label();
rdBtn1 = new RadioButton();
rdBtn2 = new RadioButton();
rdBtn3 = new RadioButton();
lbl.Content = actionPlayer;
rdBtn1.Content = "Fold";
rdBtn2.Content = "Check";
rdBtn3.Content = "Call";
stkPanel.Children.Add(lbl);
stkPanel.Children.Add(rdBtn1);
stkPanel.Children.Add(rdBtn2);
stkPanel.Children.Add(rdBtn3);
stkPanel.Children.Add(rdBtn4);
//there how i manage event of rdBtn1,rdBtn2,rdBtn3 ??
//but i need information in other class
}
}
现在我该如何管理活动?如果我像这样在MainWindow中使用这个类:
public partial class MainWindow : Window
{
GameStart game;
public MainWindow()
{
game = new GameStart();
InitializeComponent();
startGame();
}
#region private routine
private void startGame()
{
//some stuff here..
//on main windows there is a
// one grid
// and
//two radio button that are subscribed on radio_btn_checked
//
BoxActionPlayer boxAction = new BoxActionPlayer(stringHere);
grid1.Children.Add(boxAction.stkPanel);
Grid.SetColumn(boxAction.stkPanel, 2);
// Grid.SetRow(boxAction.stkPanel, 1);
// this.Show();
boxAction = new BoxActionPlayer(stringHere());
grid1.Children.Add(boxAction.stkPanel);
Grid.SetColumn(boxAction.stkPanel, 3);
..
..
}
}
#endregion
private void Radio_btn_checked(object sender, RoutedEventArgs e)
{
var button = sender as RadioButton;
MessageBox.Show(button.GroupName + " " + button.Content.ToString());
}
}
}
如何将 BoxActionPlayer 类中的 rdBtn1、rdBtn2、rdBtn3 订阅到 Main Windows 类中的Radio_btn_checked,即使它们位于不同的类中?
如果可能的话,我需要更多一般的提示: 在我的编程风格中,我经常使用GUI部分作为桥梁。 我经常有一个由许多其他人组成的类(建模对象)。这个类具有“俄罗斯套娃”效果。(它包含另一个)
我从 Windows 主类(通过 GUI)收集输入数据,并将其发送到具有 matrioska effec(输入作为参数)的类。
一般来说,如果我使用 Windows 组件创建其他类(如复选框、按钮等..)
我应该如何处理这些事件,以便在主类(公共分部类MainWindow:Window)中使用它们(如上例所示) 有没有更好的方法?泰。
在示例中,我需要动态创建组件 BoxActionPlayer(是 label、txtbox 和 radiobutton 的组合),runtime.IT 这取决于用户在上一个单选按钮中选择的选项。 对于特定的用户选择,我需要生成更多的 BoxActionPlayer(label、txtbox 和单选按钮的组合) 但是我不知道如何处理来自不同类的事件(我需要检索用户所做的选择并在主 windows 类中使用它。
我的English.Ty的借口
我考虑过在 BoxActionPlayer 中创建一个字段,我可以在其中存储用户选择,然后通过 getter 传递它。但是我如何通知我有一个新的输入参数呢?
在每种情况下,我都需要对我不知道如何捕获的事件做出反应并传递给另一个类
答: 暂无答案
评论
System.Windows.Controls.UserControl