У меня есть метод, который добавляет несколько расширителей в wpf из ввода combobox. После выбора элемента combobox открывается OpenFileDialog и получает имя файла. Это происходит не один раз, и я, кажется, переписываю свой контент для расширителя. Код нижеКак динамически добавлять несколько элементов в расширитель в WPF
private void comboBox_SetFileNames(object sender, SelectionChangedEventArgs e)
{
var selectedItem = combobox.SelectedItem as ComboBoxItem;
if (selectedItem != null)
string name = selectedItem.Name;
Expander expander = new Expander {Header = name};
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.DefaultExt = ".txt";
dlg.Filter = "Text File (*.txt) | *.txt";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
expander.Content = new TextBlock() { Text = System.IO.Path.GetFileName(dlg.FileName) };
}
dlg.Filter = "Excel Files (*.xlsx) | *.xlsx";
Nullable<bool> result2 = dlg.ShowDialog();
if (result2 == true)
{
expander.Content = new TextBlock() { Text = System.IO.Path.GetFileName(dlg.FileName) };
}
dock.Children.Add(expander);
}
}
Любой способ иметь каждое из этих имен файлов, перечисленных ниже друг друга? так что-то вроде ниже
ExpanderName
|
------FileName1.txt
|
------FileName2.xlsx
Сейчас с ним перезаписываются это выглядит следующим образом:
ExpanderName
|
------FileName2.xlsx
Установите 'expander.Content' в' StackPanel', и добавьте 'TextBlocks' в' StackPanel'. Свойству «Content» может быть задано только одно значение, а StackPanel может содержать несколько элементов управления. – Rachel
Спасибо за информацию. Если вы хотите добавить это как ответ и дать небольшой пример, если хотите, я приму это как ответ. Еще раз спасибо! – trueCamelType