0

DataGrid에서 ComboBox를 SQL 데이터로 바인딩합니다.Silverlight 바인딩 DataGridComboBoxColumn Xaml SQL

XAML 코드

<c1:C1DataGrid Width="1119" Name="DataGridName" Background="Transparent" Cursor="Hand" CanUserAddRows="False" CanUserEditRows="True" MaxHeight="380" RowBackground="Transparent" AlternatingRowBackground="Transparent" AutoGenerateColumns="False"> 
         <c1:C1DataGrid.Columns> 
          <c1:DataGridCheckBoxColumn Binding="{Binding Selectionnee,Mode=TwoWay}" Header="Sélection" CanUserSort="True"/> 
          <c1:DataGridTextColumn Binding="{Binding Adresse}" Header="Adresse" CanUserSort="True" CanUserFilter="True" IsReadOnly="False"/> 
          <c1:DataGridTextColumn Binding="{Binding Nom}" Header="Nom" CanUserSort="True" IsReadOnly="True"/> 
          <c1:DataGridTextColumn Binding="{Binding NumMot,Mode=TwoWay}" Header="N° mot" CanUserSort="True" /> 
          <strong><c1:DataGridComboBoxColumn Binding="{Binding Format , Mode=TwoWay}" Header="Format"/></strong> 
         </c1:C1DataGrid.Columns> 

이 부분은 잘 작동합니다.

은 이제 (SQL 데이터에 대응하는이 콤보 기타 텍스트 값을 표시 할 ... "B1", "B2", "N1", "N3"

형식 값이 같은 텍스트있다 특정 enum처럼). "B1"값이 "1 * B1"값인 경우 "B2"값이 인 경우 "* B1" "N1"값이 "B1 *"인 경우 요약 표시하는 것이 불분명 할 수 있습니다. "N3"값의 "4. * B1" ...

그래서 나는 성공하지 못한 채 많은 것을 시도합니다.

C# 코드

private List<string> FormatList = new List<string>() 
{ 
     "1.* B1", 
     "2.* B2", 
     "3.* N1", 
     "4.* N3" 
}; 

this.Resources.Add("FormatList", FormatList); 

InitializeComponent(); 

XAML 코드

<c1:DataGridComboBoxColumn Binding="{Binding Format , Mode=TwoWay}" Header="Format" ItemsSource="{StaticResource FormatList}"/> 

나는 형식 및 FormatList에 가입하는 방법을 모르겠어요. DictionaryConverter를 tryed했습니다하지만 그것을 이해하지 못합니다.

아무도 도와 줄 수 있습니까?

감사

당신은 DataTemplate을 사용하여이 작업을 수행 할 수 제롬

답변

0

:

  <c1:DataGridColumn Binding="{Binding Format , Mode=TwoWay}" Header="Format" > 
       <ComboBox ItemsSource={Binding FormatList}> 
       <ComboBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal"> 
         <TextBox Text="{Binding PrefixPart}" /> 
         <TextBox Text="{Binding NamePart}" /> 
         </StackPanel>                
        </DataTemplate> 
       </ComboBox.ItemTemplate> 
       </ComboBox> 
      </c1:DataGridColumn> 

는 그런 다음 형식

public class Format 
{ 
    public string PrefixPart{get;set;} 
    public string NamePart{get;set;} 
} 

라는 클래스를 만듭니다 그리고 당신은 IList의를 생성/ObservableCollection FormatList 및이 ​​목록에 추가하십시오.

희망이 있습니다.

0

당신은 작업 예를 들어 내 blog post 당신이 다운로드 할 수있는 코드에서 선택된 값

[SelectedValue="{Binding Path=Format, Mode=TwoWay}"] 

을 설정해야합니다.