У меня есть пользовательский элемент управления в проекте WPF PRISM, откуда на кнопку мыши (команда обязана) следующая функция называется:Передача списка из пользовательского элемента управления в окне
private async void UpdateStoreSet()
{
List<ValidationData> failedData = await _adapter.UpdateStoreSetData(this.DataList.Result as List<StoreSetData>);
if (failedData != null && failedData.Count > 0)
{
FailedValidationViewModel objFaliedVM = new FailedValidationViewModel(_errorHandler, _dlgService, failedData);
//objFaliedVM.DataList = failedData;
Windows.FailedValidation win = new Windows.FailedValidation(objFaliedVM, _errorHandler);
win.Owner = System.Windows.Application.Current.MainWindow;
win.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
win.ShowDialog();
//_dlgService.ShowMessageBox(failedData.Count.ToString() + " records failed validation!", "Failure", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
// Refresh the list
SearchPlanograms();
}
}
В конструкторе Window View Model , здесь написано:
public FailedValidationViewModel(IErrorHandlerService inErrorHandler, IDialogService inDlgService, List<ValidationData> lstFailedList)
{
// Set dependency injected services to local variables
_errorHandler = inErrorHandler;
_dlgService = inDlgService;
//Instantiate the failed validation list
DataList = lstFailedList;
// Instantiate the command
this.ExportToExcelCommand = new DelegateCommand<object>(this.ExportToExcel);
}
#endregion
#region Properties
public List<ValidationData> DataList
{
get
{
return _failedValidation;
}
set
{
if (_failedValidation != value)
{
SetProperty(ref _failedValidation, value);
}
}
}
#endregion
После сетка отображается в окне:
<dxg:GridControl x:Name="gridFailedFloorplans" Grid.Row="0" AutoGenerateColumns="None"
ItemsSource="{Binding DataList.Result.View}" AutoExpandAllGroups="True" DefaultSorting="Name"
dx:ThemeManager.Theme="Default" Height="350" Width="580">
<dxg:GridControl.View>
<dxg:TableView AllowGrouping="True" ShowGroupPanel="False" AllowEditing="False" AutoWidth="True" Name="gridFailedValidationTableView"/>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="abc" />
<dxg:GridColumn FieldName="def" />
<dxg:GridColumn FieldName="efg" />
<dxg:GridColumn FieldName="ghi" />
<dxg:GridColumn FieldName="jkl FixedWidth="True" Width="100" />
<dxg:GridColumn FieldName="mmm" FixedWidth="True" Width="100" />
</dxg:GridControl.Columns>
</dxg:GridControl>
Но сетка с пустым значением ItemsSource = null. Я не знаю, как это исправить. Пожалуйста помоги.
Проверьте ошибки привязки в окне «Выход». Имеет ли смысл привязка к 'DataList.Result.View'? – Sinatr
Вы настраиваете DataContext в своем окне на виртуальную машину? – auburg
Призма или DevExpress? – Coding4Fun