2012-04-19 23 views
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」、...

形式の値は、このようなテキストです特定の列挙型のように)。 「B2」の値が 「B1」の値が「1. * B1」の場合 「B2」の値が の場合は「2. * 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を試しましたが、私はそれを完全に理解していません。

誰でも手伝ってもらえますか?

おかげ

ジェローム

答えて

0

あなたはDataTemplateをを使用してこれを行うことができます/次にあなたがフォーマット

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

というクラスを作成します

  <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> 

をそして、あなたはIListのを作成ObservableCollection FormatListこのリストに追加します。

希望に役立ちます。

0

あなたが働い例のコードをダウンロードすることができ、私のblog postで選択した値

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

を設定する必要があります。

関連する問題