Динамически добавлять элементы управления через кнопку - PullRequest
0 голосов
/ 12 июня 2019

Я застрял, пытаясь динамически генерировать текстовые поля, к которым я хотел бы иметь доступ, чтобы сохранить их в файле app.config для будущего использования. Я пытаюсь использовать его для хранения файловых мест. До сих пор я частично преуспел в построителе строк и в списке Oberservable. Я хотел бы получить представление о том, как двигаться вперед с помощью любого из этих подходов или любого нового подхода, исключающего MVVM (да, я знаю, что действительно должен использовать этот подход, но это мое первое приложение WPF, и я все еще пытаюсь обернуть свое Обдумайте эти концепции. У меня также есть 80% того, что мне нужно сделать, так как большая часть моего кода была написана в Winform, а затем портирована в WPF для добавления более приятного интерфейса)

До сих пор подход с использованием строителя строк, по-видимому, добавляет только 1 элемент управления при щелчке - либо это, либо добавление дополнительных текстовых полей в том же месте, поэтому я не могу их видеть и не могу определить, как изменить местоположение с помощью построителя строк, если это даже возможный.

Кажется, что подход Observable прекрасно работает при добавлении кнопок, но я не могу понять, как получить доступ к динамическим полям, чтобы сохранить их.

Код строителя строки

sb.Append(@"<TextBox xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"" IsReadOnly=""False"" HorizontalAlignment=""Left"" Height=""43"" Width=""100"" Margin=""-625, 10"" />");

Наблюдаемый подход

public class MyData
{
        public string OriginalLocation { get; set; }
        public string DestinationLocation { get; set; }
        //public Button FileBrowse1 { get; set; }

}



public partial class MainWindow : Window
{

      ObservableCollection<MyData> _myData = new ObservableCollection<MyData>();

    public MainWindow()
    {
            InitializeComponent();
            dataGrid.ItemsSource = _myData;    
    }`
    `private void btnAdd_Click(object sender, RoutedEventArgs e)
    {

        _myData.Add(new MyData());

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...