這是我在這個論壇上的第一篇文章,雖然我是一個長期潛伏者。我已經開始學習WPF大約幾個月了,我正在嘗試創建一個僅用於培訓目的的應用程序。WPF:Databinding到DataGrid
我有一個後端數據庫,我使用EF6 ORM添加到我的應用程序中。在我的應用程序中,我有一個ComboBox,它需要由數據庫表中的列填充。我可以使用綁定到列表來完成。
我遇到問題的部分是DataGrid
。需要根據在ComboBox
中選擇的Item
填充DataGrid
的列。
我的數據庫:
正如你所看到的,在學校有好幾個部門,每個部門的那些都有一個HOD和學生的實力。
我的應用程序:
的ComboBox
將與學校的名稱進行填充。一旦選擇了學校名稱,DataGrid
將被填充。 DataGrid
將爲學校的每個部門提供每行。所以我需要將相應的欄目與相應學校的部門聯繫起來。我得到了很多。不過,我想在反饋TextBox
中保存用戶輸入的評論。
我不明白如何創建一個類,以便我可以將DataGrid
綁定到它的對象。是否可以將DataGrid
綁定到一個對象,然後將這些列單獨綁定到另一個對象?
編輯
從數據庫中創建的實體除此之外,我有兩個類:
這應該被綁定到數據網格。並且FeedbackLine是:
public class FeedbackLine: INotifyPropertyChanged
{
private string _dept;
public string Department
{
get { return _dept; }
set { _dept = value;
OnPropertyChanged("Department");
}
}
private string _HOD;
public string HOD
{
get { return _HOD; }
set { _HOD = value;
OnPropertyChanged("HOD");
}
}
private int _strength;
public int Strength
{
get { return _strength; }
set { _strength = value;
OnPropertyChanged("Strength");
}
}
private bool _isSelected;
public bool Selected
{
get { return _isSelected; }
set { _isSelected = value;
OnPropertyChanged("Selected");
}
}
private string _comment;
public string Comment
{
get { return _comment; }
set { _comment = value;
OnPropertyChanged("Comment");
}
}
private void OnPropertyChanged(string v)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(v));
}
public event PropertyChangedEventHandler PropertyChanged;
}
我對ViewModel沒有太多進展。問題是,我對LINQ不太好。而且有太多的類和對象,我不知道哪一個與哪個綁定。我能得到的唯一含糊的想法是我必須使用LINQ來使用所選的School
來查詢數據庫,然後使用它來填充FeedbackLines
。
編輯2: 的人誰的興趣,這裏是我的模型圖中的WPF: Model Diagram
編輯3: 我想我感到困惑的視圖模型。屏幕上顯示的數據不一定是要保存的數據。例如,我不想保存未選中的行。我的Feedback
類嘗試顯示數據並保存。問題在於此。不能DataGrid
綁定到一個對象,而其列被綁定到其他對象?例如,如果我選擇爲部門使用Combobox
。然後我需要使用ItemsSource
來顯示項目,但只需要保存SelectedItem
。我找不到解決這兩個問題的方法。
是否可以共享代碼? –
發佈您的代碼。 –
通過代碼,你的意思是viewmodel還是xaml? –