Вы хотите иметь что-то вроде
categoryMod.CategoryNameValue = categoryControl.CategoryNameValue;
Таким образом, вам нужно определить два свойства: одно свойство CategoryNameValue
, с которым вы получите текстовое значение TextBox, и одно свойство CategoryNameValue
, с которым вы можете установить свойство Text элемента TextBlock.
Определите это свойство в классе CategoryControl
,
public string CategoryNameValue { get { return CategoryNameBox.Text; }
И это в классе CategoryModule,
public string CategoryNameValue { set { CategoryName.Text = value; }
И вы можете начать использовать их в своем коде.
Вы можете определить их как Свойства зависимостей вместо простых свойств CLR, а затем использовать привязку данных . При связывании данных оба пользовательских элемента управления могут быть привязаны к одной и той же модели данных, поэтому их значения синхронизируются автоматически.
Редактировать:
Оказывается, вы можете получить доступ к дочерним элементам UserControl извне, как если бы они были открытыми полями. То есть вы можете написать такой код без необходимости определять новые свойства
CategoryModule categoryMod = new CategoryModule();
categoryMod.CategoryName.Text = CategoryNameBox.Text;
CategoriesWraper.Children.Add(categoryMod);