Обычно вы устанавливаете привязку данных в XAML следующим образом:
<Textbox Text="{Binding myDataBindingProperty}"/>
Однако в моей форме WPF есть кнопка, которая добавляет текстовые поля во время выполнения.
private void AddTextBox(object sender, RoutedEventArgs e)
{
TextBox myNewTextbox = new TextBox();
grid.Children.Add(myNewTextbox);
}
Пока я добавляю текстовое поле, я хотел бы иметь возможность настроить привязку данных. Однако я не уверен, как это сделать. Я пробовал несколько вариантов, таких как:
myNewTextbox.SetBinding(myDataBindingProperty);
myNewTextbox.Text = "{Binding myDataBindingProperty}";
, а также еще несколько предположений outlandi sh, которые я не буду здесь воспроизводить! В любом случае, как настроить привязку данных в C# коде?
У меня не было надлежащего источника привязки, и это сложнее, чем я думал, и найти его. Это то, о чем я думал в этом примере. Если вы можете порекомендовать улучшения, которые будут полезны.
public MainWindow()
{
DataContext = new ViewModel();
InitializeComponent();
}
internal class ViewModel
{
public KeyValuePair<string, string> myDataBindingProperty
{
set { contentsOfMyNewTextboxes.Add(value.Key, value.Value); }
}
//Key = name of TextBox; Value = contents of text box
private Dictionary<string, string> contentsOfMyNewTextboxes = new Dictionary<string, string>();
}