Как передать данные из корневого узла MMC в UserControl в C#

В настоящее время я разрабатываю оснастку MMC в C#, которая будет динамически заполнять узлы из объектов списка (получаемых в виде общего списка). Кажется, это работает нормально, и я хочу сделать следующее - передать этот объект в UserControl на панели действий и заполнить некоторые поля из данных / полей объекта.

У меня работает ядро ​​MMC, но я не могу найти, где на самом деле создается UserControl.

Корневой узел находится здесь, вы можете видеть, что мы передаем по списку - этот бит в порядке:

protected override void OnExpand(AsyncStatus status)
    {
        try
        {
            Children.Clear();
            foreach (var server in new DataAccess().GetAllMonitorServers())
            {
                var x = new ServerNode()
                {
                    DisplayName = "Monitor Configuration - " + server.machineName
                   ,monitorServer = server
                };
                Children.Add(x);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: " + ex.ToString(), "Monitor Configuration Read Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

            ScopeNode node = new ScopeNode(false);
            node.DisplayName = "Error";
            node.ImageIndex = 11;
            node.SelectedImageIndex = 13;
            Children.Add(node);

            return;
        }



    }

Код подузла находится здесь:

    class ServerNode : ScopeNode
{
    private readonly FormViewDescription serverNodeDescription = new FormViewDescription { DisplayName = " test "};
    public MonitorServer monitorServer;
    public ServerNode() : base(true)
    {
        ImageIndex = 18;
        SelectedImageIndex = 18;
        serverNodeDescription.ViewType = typeof(FormView);
        serverNodeDescription.ControlType = typeof(Forms.MonitorConfigurationControl);
        this.ViewDescriptions.Add(serverNodeDescription);
    }

}

Код для UserControl находится здесь:

public partial class MonitorConfigurationControl : UserControl
{
    private MonitorServer _monitorServer { get; set; }
    public MonitorConfigurationControl()
    {
        InitializeComponent();
    }


    private void MonitorConfigurationControl_Load(object sender, EventArgs e)
    {
        Cursor.Current = Cursors.WaitCursor;
        this.AutoScroll = true;
        this.AutoSize = false;
        this.MinimumSize = this.Size = this.Parent.Size;

        //MessageBox.Show("Test", "Test", MessageBoxButtons.OK);
    }
}

Мне нужно как-то передать объект monitorServer из корневого узла в свойство UserControl _monitorServer, чтобы я мог что-то делать с ним в представлении. Документация на это кажется довольно отрывочной. Помогите, пожалуйста.

0 ответов

Другие вопросы по тегам