Например, у меня есть небольшой класс:
public class SednaTreeViewItem
{
public string ValueMember { get; set; }
public string DisplayMember { get; set; }
public SednaTreeViewItem(string valueMember, string displayMember)
{
ValueMember = valueMember;
DisplayMember = displayMember;
}
}
Затем я использую его в пользовательском элементе управления следующим образом:
/// <summary>
/// SednaTreeViewItem that is currently selected in the SednaTreeView.
/// </summary>
public SednaTreeViewItem SelectedItem
{
get
{
if (ultraTree.SelectedNodes.Count > 0)
{
var node = ultraTree.SelectedNodes[0];
return treeNodes.FirstOrDefault(x => x.ValueMember == node.Key);
}
else
return null;
}
set
{
if (value != null)
{
ultraTree.ActiveNode = ultraTree.Nodes[value.ValueMember];
ultraTree.Select();
}
}
}
Затем в фактической форме, которая использует этого пользователяэлемент управления, я хотел бы захватывать всякий раз, когда .Text изменяется в текстовом поле, чтобы этот текст также изменялся в пользовательском элементе управления, который является древовидным.
private void txtInvestor_TextChanged(object sender, EventArgs e)
{
treeViewInvestors.SelectedItem.DisplayMember = txtInvestor.Text;
}
Проблема в том, что когда яизменено значение .DisplayMember, ничего не запускается, чтобы дать древовидной структуре знать, когда обновлять отображаемый текст узла.
Есть ли у вас какие-либо предложения о том, как это реализовать?