试图更新DataGrid
RowDetailsTemplate
“人物”中的“细节” DataGrid
(做一些疯狂的盗梦空间!)。
集合正在正确更新NotifyOfPropertyChange()
,但似乎没有更新DataGrid
.
“Header
地址信息”在 中RowDetailsTemplate
,但其中没有显示任何行DataGrid
。
楷模:
public class PersonModel
{
public string FirstName{ get; set; }
public string LastName{ get; set; }
}
public class DetailsModel
{
public string Address{ get; set; }
}
视图模型:
private ObservableCollection<PersonModel> _people;
private ObservableCollection<PersonModel> People
{
get { return _people; }
set
{
_people = value;
NotifyOfPropertyChange(() => People);
}
}
private ObservableCollection<DetailsModel> _details;
private ObservableCollection<DetailsModel> Details
{
get { return _details; }
set
{
_details = value;
NotifyOfPropertyChange(() => Details);
}
}
public void SetRowDetail(PeopleModel selectedPerson)
{
PeopleModel person = selectedPerson;
DetailsModel detailInfo = new DetailsModel();
detailInfo.address = GetAddr(person.AddressIndex);
Details = new ObservableCollection<DetailsModel>() {detailInfo};
}
看法:
<DataGrid x:Name="People"
Grid.Row="1"
cm:Message.Attach="[Event MouseUp]=[Action SetRowDetail($this)]">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel>
<TextBox Text="Person Details" />
<DataGrid x:Name="Details"
ItemsSource="{Binding TakeoutCoefficients}">
<DataGrid.Columns>
<DataGridTextColumn Header="Address Info"
Binding="{Binding Address, UpdateSourceTrigger=PropertyChanged}" />
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
我想实现这一点而不必取出RowDetailsTemplate
.
试过 BindableCollection 和 ItemsSource 似乎也没有帮助。
任何帮助或建议将不胜感激。