0

我将 DataGrid 中的 ComboBox 与 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”、...</p>

现在我想在这个 ComboBox 中显示与 SQL 数据相对应的其他文本值(如特定的枚举)。可能不清楚,总而言之,我想显示:“1.* B1”代表“B1”值“2.* B1”代表“B2”值“3.* B1”代表“N1”值“4.* B1″ 代表“N3” 值……</p>

所以我尝试了很多事情,但没有成功。

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}"/>

我不知道如何加入 Format 和 FormatList。我试过 DictionaryConverter 但我不完全理解它。

谁能帮我?

谢谢

杰罗姆

4

2 回答 2

0

您必须设置选定的值

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

在我的博客文章中,您可以下载工作示例的代码。

于 2013-07-26T21:36:13.863 回答
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>

然后创建一个名为 Format 的类

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

然后创建一个 IList / ObservableCollection FormatList 并添加到此列表中。

希望有帮助。

于 2012-04-20T13:39:02.477 回答