我将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”,......
现在我想在此ComboBox中显示与SQL数据相对应的其他文本值(如特定的枚举)。 可能不清楚,总结一下我想显示: “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}"/>
我不知道如何加入Format和FormatList。我已经尝试过DictionaryConverter,但我并不完全理解它。
任何人都可以帮助我吗?
由于
杰罗姆
答案 0 :(得分: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>
然后创建一个名为Format
的类public class Format
{
public string PrefixPart{get;set;}
public string NamePart{get;set;}
}
然后创建一个IList / ObservableCollection FormatList并添加到此列表中。
希望有所帮助。
答案 1 :(得分:0)