gpt4 book ai didi

c# - 可重复使用的用户控件中的按钮

转载 作者:行者123 更新时间:2023-12-03 10:57:16 25 4
gpt4 key购买 nike

我有一个用户控件,我想在一个页面中多次重复使用它。我找到了 post about a similar problem ,但出现了转折:如果我有 TextBox在我的控制下,我可以公开单个属性,如下所示:

public string FirstName
{
get { return privateTextBox.Text; }
set { privateTextBox.Text = value; }
}

从我的主视图(有一个 View 模型)我访问该属性,如下所示:
MyUserControl personUserControl= new MyUserControl();
personUserControl.FirstName = viewModel.FirstName;

这是我的问题:如果我在自定义用户控件中有一个我想要访问的按钮怎么办。我可以访问它的属性,就像文本框一样,但是 呢?事件 (主要是 Click 事件)?

目前,我最好的解决方案是调用委托(delegate)事件,该事件被(主视图的) View 模型捕获,然后调用另一个事件,但这似乎是一个非常糟糕的设计。

是否无法以类似于属性访问的方式从用户控件访问事件?

附言不,我将 MVVM 和 WinForms 混合在一起并不是一个错误。这是有意的(聪明与否)。

编辑:这个问题与WinForms(据我所知)没有太大关系,因为它与使用多层用户控件有关。这就提出了一个问题:我应该从上到下通过多层 UserControls 传递 ViewModel,还是应该向上传递 UserControls 的属性?

最佳答案

您可以以与处理其他属性几乎相同的方式公开事件:

private Button myButton;

public event EventHandler MyButtonClick
{
add { myButton.Click += value; }
remove { myButton.Click -= value; }
}

关于c# - 可重复使用的用户控件中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46404554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com