EDIT
Первое: вы не привязываете ComboBox к коллекции элементов пользовательского интерфейса. Так не работает WPF. Контейнерные элементы управления, такие как Grid, StackPanel и Canvas, могут содержать дочерние элементы управления. ItemsControls, такие как ComboBox, содержат объекты данных и используют DataTemplates для отображения элементов.
Во-вторых: если база данных может содержать ЛЮБЫЕ данные, которые могут привести к необходимости ЛЮБОГО UI, вам нужно будет сгенерировать UI в коде, создав StackPanels и т. Д., Добавив элементы управления и привязки, как вы делаете в примерах кода.
В-третьих: причина, по которой вы не можете связать, состоит в том, что данные из базы данных - это строка, которую вы разбили на части; нет никакого способа, которым вы можете просто вернуться к строке.
Предложение: строка в базе данных, вероятно (я надеюсь) в каком-то формате. Используя эти знания, вы можете сгенерировать новую строку формата при разборе строки базы данных. Например, когда база данных содержит foo [bar]
, вы можете сгенерировать {0} [bar]
. При сохранении действия пользователя вы можете использовать эту строку для создания обновленной строки для базы данных, используя: String.Format("{0} [bar]", someControl.Text)
Дополнительно: пожалуйста, в следующий раз используйте лучшие имена и примеры текстов; вопрос не читается вот так. Вы не можете ожидать от нас понимания 2=>Class tpy rbs=[sdfg],kssc[h] hm
СТАРЫЙ ОТВЕТ
Создайте класс Stuff, реализующий INotifyPropertyChanged и имеющий свойства Name и Value.
Загрузите данные базы данных в ObservableCollection<Stuff>
и привяжите ComboBox к этой коллекции.
Установите для ItemTemplate поля со списком такую табличку с данными:
<ComboBox ItemsSource="{Binding}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
<TextBox Text="{Binding Value}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>