2012-04-19 73 views
0

我使用SQL數據綁定DataGrid中的ComboBox。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> 

這部分工作正常。

格式值是像這樣的文字:」 B1「,「B2」,「N1「,「N3」,...

現在我想在對應的SQL數據ComboBox的其他文本值顯示(像一個特定的枚舉)。總結我想要顯示: 「1. * B1」對於「B1」值 「2. * B1」對於「B2」值 「3. * B1」對於「N1」值 「4. * B1」爲「N3」值 ...

因此,我嘗試了很多事情,但沒有成功。

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做到這一點:

  <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

必須設置所選值

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

在我blog post您可以下載代碼的工作示例。