2010-01-02 4 views
1

저는 Silverlight의 DataGrid에서 작업하고 있습니다. 내가 DataGrid를 채울 때 잘 작동하는 List를 반환하는 WCF 서비스가 있습니다. CoreEmployee는 EmployeeId, FirstName, LastName, HourlyRate, HireDate의 속성을 반환합니다. 각 직원의 시간당 요금은 데이터 그리드에 채워지면, 나는 또한 모든 고유의 급여 비율의 목록을 원하는 :Silverlight DataGrid Combobox Newbie 질문

여기
<data:DataGridTemplateColumn Header="Hourly Rate"> 
    <data:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding HourlyRate}" /> 
     </DataTemplate> 
    </data:DataGridTemplateColumn.CellTemplate> 
    <data:DataGridTemplateColumn.CellEditingTemplate> 
     <DataTemplate> 
      <!--ItemsSource="{Binding PayRateList, Source={StaticResource PayRateProvider}}"--> 
      <ComboBox SelectedItem="{Binding HourlyRate}" 
         ItemsSource="{Binding HourlyRates}" 
         local:ComboBoxService.ForceOpen="true" 
        /> 
     </DataTemplate> 
    </data:DataGridTemplateColumn.CellEditingTemplate> 
</data:DataGridTemplateColumn> 

내가 달성하기 위해 노력하고 무엇 :이 시간당 요금의 내 XAML입니다 데이터 그리드의 각 사용자에 대해

내 코드 뒤에 그렇게 않습니다 내가 된 본체를 두 번 클릭 할 때

private List<Decimal> _hourlyRates = new List<decimal>(); 
public List<Decimal> HourlyRates 
{ 
    get { return _hourlyRates; } 
} 

void client_GetEmployeesCompleted(object sender, GetEmployeesCompletedEventArgs e) 
{ 
    try 
    { 
     if (e.Result != null) 
     { 
      EmployeesGrid.ItemsSource = e.Result; 

      // Convert an ObservableCollection<T> to a List<T> 
      List<CoreEmployee> employees = e.Result.ToList<CoreEmployee>(); 

      // Generate a unique list 
      // http://stackoverflow.com/questions/223400/checking-for-duplicates-in-a-complex-object-using-linq-or-lamda-expression 
      var results = from item in employees 
          group item by item.HourlyRate into g 
          select g.First(); 

      foreach (CoreEmployee employee in results) 
      { 
       HourlyRates.Add(employee.HourlyRate); 
      } 

      _dataHasLoaded = true; 
     } 
    } 
    catch (Exception exc) 
    { 
     // Eat the exception 
    } 
} 

그러나, 문제가 발생, 콤보 상자가 표시 않지만, 데이터없이.

내가 뭘 잘못하고 있니?

답변

0

foreach 루프에서 목록을 채운 후에 HourlyRates 속성에서 PropertyChanged 이벤트를 발생시켜야합니다. 또한 ComboBox SelectedItem 바인딩 모드를 TwoWay로 설정하십시오.