Здравствуйте всем. Подскажите, пожалуйста, как заполнить ComboBox данными из таблицы DataGrid.
У меня есть два окна. В одном окне у меня есть DataGrid (имя его будет ReaderDataGrid). Это таблица содержит в себе записи о читателях. Теперь мне нужно в другом окне расположить ComboBox (имя его будет OrderComboBox). Этот ComboBox мне нужно заполнить не рандомными значениями, а теми значениями, которые есть в DataGrid (ReaderDataGrid).
В своём проекте я НЕ ИСПОЛЬЗУЮ паттерн MVVM, поскольку данный паттерн для меня слишком сложный в понимании его концепции, хотя не исключаю, что через него мне будет намного проще сделать то, что хочу. Для работы с БД я использую EF.
P.S. Немного дополнил свой пост.
Часть кода первого окна:
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
using (LibraryModelContainer dbContainer = new LibraryModelContainer())
{
ReaderDataGrid.ItemsSource = dbContainer.Readers.ToList();
OrderDataGrid.ItemsSource = dbContainer.Orders.ToList();
CatalogDataGrid.ItemsSource = dbContainer.Catalogs.ToList();
BookDataGrid.ItemsSource = dbContainer.Books.ToList();
}
}
}
Часть кода второго окна (не обращайте внимание на название CatalogWindow, я там провожу эксперименты):
public partial class CatalogWindow : Window
{
private readonly MainWindow _window;
private readonly bool _isAddMode; // Булевское поле для проверки режима операции над записью
public CatalogWindow(MainWindow window, bool isAddMode)
{
InitializeComponent();
_window = window;
_isAddMode = isAddMode;
if (!_isAddMode)
{
AddUpdateButton.Content = "Редактировать";
}
using (LibraryModelContainer dbContainer = new LibraryModelContainer())
{
ReaderComboBox.ItemsSource = dbContainer.Readers.ToList();
}
}
}
Оба окна у меня не диалоговые, хотя второе окно открываю через метод ShowDialog() в MainWindow.xaml.cs:
private void CreateCatalogButton_Click(object sender, RoutedEventArgs e)
{
CatalogWindow window = new CatalogWindow(this, true);
window.ShowDialog();
}
В конструкторе окна CatalogWindow я добавил это:
using (LibraryModelContainer dbContainer = new LibraryModelContainer())
{
ReaderComboBox.ItemsSource = dbContainer.Readers.ToList();
}
Вот теперь вопрос: как мне преобразовать эту коллекцию в объекты класса Reader? Вернее даже не объекты класса Reader, а нужно сделать так, чтобы в ComboBox выводились для объекта Reader свойство Name (ФИО читателя), а через свойство Id класса Reader я мог уже при операции добавления заносить значения этого Id класса Reader в нужный мне объект другого класса. Немного запутанно написал, но суть в том, что нужно сделать аналогично, как если бы я приложение делал не через WPF, а в Windows Forms. Потому что сейчас вот так происходит, и я не понимаю, как сделать явное преобразование из-за недопонимания (или незнания) иерархии наследуемых классов или мб из-за чего-то другого, что мешает мне сделать это без проблем.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый день, вопрос скорее теоретический, но очень интересно от чего так получилосьИ если есть предложения, то как бы убыстрить новообразованный...
В axml описана кнопка, по клику на кнопку, нужно открыть галерею и передать в ViewModel путь к выбранному изображениюРеализация в рамках MVVMCross, нужен...