Моя цель состояла в том, чтобы заменить <TextBox Text={Binding TopTextContent} />
(который работает как есть) в представлении xaml следующим образом в коде:
public partial class MyView: UserControl
{
public MyView()
{
InitializeComponent();
// Supposed to replace: // <TextBox Text={Binding TopTextContent} />
InputContextMenu("Top Text", "TopTextContent");
}
private void InputContextMenu([NotNull] string header, [NotNull] string propName)
{
var textBox = new TextBox
{
MaxLength = 12,
Width = 80,
FocusVisualStyle = null
};
textBox.SetBinding(
TextBox.TextProperty,
new Binding
{
Path = new PropertyPath(propName),
Source = DataContext, // (MyView)DataContext didn't work as well
Mode = BindingMode.TwoWay
}
);
CodeBehindTextInputs.Items.Add(
new MenuItem
{
Header = header,
Focusable = false,
Items = {textBox}
}
);
}
}
На самом деле это должно работать, но это не так, поле делает появляются, но поле ввода пустое и его изменение не изменяет значение, к которому оно должно быть привязано.
Sn oop показывает его красным:
Я не уверен, как отлаживать дальше или что я делаю неправильно.