Как передать данные из корневого узла 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, чтобы я мог что-то делать с ним в представлении. Документация на это кажется довольно отрывочной. Помогите, пожалуйста.