[英]WPF DataGrid Unable to bind from ItemsSource
我已經看了幾個小時了,但是我無法弄清楚...我已經成功地將“問題”綁定到ItemsSource。 Questions是一個包含QuestionVM對象的ObservableCollection。
由於某些原因,帶有“問題”標題的文本列不能綁定到“問題”中的“問題”屬性。
<DataGrid ItemsSource="{Binding Questions}" AutoGenerateColumns="False" SelectedItem="{Binding SelectedQuestion, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridTextColumn Header="Question" Binding="{Binding Question}" Width="*"/>
<DataGridTemplateColumn Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Delete"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Edit"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
這是帶有屬性的QuestionVM類的一部分。
public class QuestionVM
{
private Question _question;
public string Question { get { return _question.Question1; } set { _question.Question1 = value; } }
public string Category { get { return _question.Category; } set { _question.Category = value; } }
public ObservableCollection<AnswerVM> Answers { get; set; }
}
我應該能夠綁定Question屬性嗎? 為什么我不能這樣做?
編輯:Intellisense僅顯示主數據上下文的屬性,而不顯示Questions ObservableCollection內部的單個QuestionVM的屬性。
DataContext="{Binding ExistingQuestions, Source={StaticResource Locator}}
ExistingQuestions包含屬性Questions,SelectedQuestion和AddQuestion。 這些是Intellisense所顯示的。
圖片進一步說明:
如您所見,這些不是QuestionVM的屬性,而是主要數據上下文。 它不想從我設置為ItemsSource的ObservableCollection中選擇屬性。
更新的答案
如果對象未出現在Intellisense中,則可能是由於創建對象的名稱空間所致。 確保在同一名稱空間中聲明對象,或嘗試將對象Question的名稱空間添加到視圖中。
向視圖添加名稱空間的示例
xmlns:helper="clr-namespace:Mynamespace.Myclass"
此外,似乎該視圖模型還沒有實現INotifyPropertyChanged接口,該接口用於在綁定屬性更新時通知控件的視圖。
Cordialement
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.