2013-03-28 2 views
0

У меня возникает одна проблема, связанная с ComboBox от DataGrid. Данные являются обязательными, но они не отображаются в ComboBox после привязки. Мой код, как показано ниже:привязка данных в комбинированном поле wpf в сетке данных

<my:DataGridTemplateColumn Header="UsgSrc"> 
    <my:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <ComboBox Name="cbUsgSrc" 
         ItemsSource="{Binding Source={StaticResource UsgSrcUOMS}}" 
         SelectedValue="{Binding Path=UsgSrc}" 
         SelectedValuePath="UtType" 
         DisplayMemberPath="UtType"> 
      </ComboBox> 
     </DataTemplate> 
    </my:DataGridTemplateColumn.CellTemplate> 
</my:DataGridTemplateColumn> 

Код для статического ресурса:

UsgSrcUOMS.ObjectDataProvider UsageSrcUOMS = null; 
UsageSrcUOMS = (ObjectDataProvider)FindResource("UsgSrcUOMS"); 
UsageSrcUOMS.ObjectInstance = objUtView; 
Microsoft.Windows.Controls.DataGridCell cell = obj.GetCell(dgMtrHdr, J, 11); 

if (cell != null) 
{ 
    ContentPresenter panel = cell.Content as ContentPresenter; 
    if (panel != null) 
    { 
     ComboBox cmbUsUtilit = obj.GetVisualChild<ComboBox>(panel); 
     cmbUsUtilit.IsEnabled = true; 
     if(objUtView!=null) 
     cmbUsUtilit.ItemsSource = objUtView;cmbUsUtilit.SelectedIndex=2; 
    } 
} 

Что является причиной этого. Пожалуйста, помогите мне решить мою проблему.

ответ

0

Вы пытались изменить Binding к StaticResource, что-то вроде этого

<ComboBox Name="cbUsgSrc" 
      ItemsSource="{StaticResource UsgSrcUOMS}" 
      SelectedValue="{Binding Path=UsgSrc}" 
      SelectedValuePath="UtType" 
      DisplayMemberPath="UtType"> 
</ComboBox> 
+0

Привет Синус, только теперь я пытался как то, что вы said.But я получаю следующее сообщение об ошибке в коде позади. «System.Windows.Data.ObjectDataProvider» не является допустимым значением для свойства «ItemsSource». – cas001s

+0

вы можете поделиться кодом, в котором вы определяете StaticResource UsgSrcUOMS – makim

+0

Привет Сине, спасибо за ответ. В коде позади я назначаю данные UsgSrcUOMS.ObjectDataProvider UsageSrcUOMS = null; UsageSrcUOMS = (ObjectDataProvider) FindResource ("UsgSrcUOMS"); UsageSrcUOMS.ObjectInstance = objUtView; Microsoft.Windows.Controls.DataGridCell cell = obj.GetCell (dgMtrHdr, J, 11); if (cell! = Null) {ContentPresenter panel = cell.Content как ContentPresenter; if (panel! = Null) {ComboBox cmbUsUtilit = obj.GetVisualChild (панель);cmbUsUtilit.IsEnabled = true; if (objUtView! = Null) cmbUsUtilit.ItemsSource = objUtView; cmbUsUtilit.SelectedIndex = 2;}} – cas001s