Я создал простой MVVM только с тремя классами CashFlowView, CashFlowViewModel, CashFlowModel.
Я использую XamDataPresenter (или xamDataGrid) Infragistic's 9.1.
<igDP:XamDataPresenter Name="xamDataPresenter1" DataSource="{Binding Source={StaticResource CashFlowData}}">
<ObjectDataProvider x:Key="CashFlowData" ObjectType="{x:Type ViewModel:CashflowViewModel}" MethodName="GetCashFlows" />
Внутри моей ViewModel:
public ObservableCollection<CashflowModel> GetCashFlows()
{
return new ObservableCollection<CashflowModel>() { ... };
}
ViewModel подключен к View следующим образом:
this.DataContext = new CashflowViewModel();
Пока я подключаю сетку к ObjectDataProvider, егоотлично работает отлично.Но я хотел бы просто подключиться к свойству внутри моей ViewModel.
В соответствии с инфраструктурой все, что мне нужно сделать, это:
<igDP:XamDataGrid DataSource="{Binding Path=ViewModelCollection}"/>
Но в этом случае, похоже, мне нужнопривязать к коллекции другой ViewModel для представления моих строк в сетке.И вот где я запутался.
Я попробовал это, и это не работает:
<igDP:XamDataPresenter Name="xamDataPresenter1" DataSource="{Binding Path=CashFlows}">
Внутри модели представления:
public ObservableCollection<CashflowDataGridViewModel> CashFlows
{
get
{
return new ObservableCollection<CashflowDataGridViewModel>();
}
}
Но как мне создать свой второйViewModel (CashflowDataGridViewModel)?
Я пытался добавить это свойство в течение этой второй ViewModel:
public CashflowModel CashFlow
{
get
{
return new CashflowModel() {...};
}
}
Но все, что я вижу, - это заголовок столбца "Cashflow" без каких-либо нижележащих заголовковфактического класса cashflowModel.