2016-03-15 21 views
1

我從哪裏上的按鈕點擊(命令綁定)一個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(); 
      } 
     } 

在構造窗口視圖模型,這裏寫的是:

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的時候會變成空的。我不知道如何解決它。請幫忙。

+2

檢查'Output'窗口中的綁定錯誤。綁定到'DataList.Result.View'是否合理? – Sinatr

+0

您是否將窗口中的DataContext設置爲您的VM? – auburg

+0

棱鏡還是DevExpress? – Coding4Fun

回答

0

不應該結合是

<dxg:GridControl .... 
     ItemsSource="{Binding DataList}" 

否則其在一個空itemsSourceList<ValidationData>,它不存在,結果找了物業Result

相關問題