大家好我正在使用wpf Datagrid
,我需要有一个datagridcomboBox
列,我需要在该列中有一些静态值。我尝试过以下方法,但列内的数据是没有显示。
<DataGrid
Grid.Row="4"
Height="200"
Width="500"
Grid.ColumnSpan="2"
Margin="10,10,0,0"
HorizontalAlignment="Left"
AutoGenerateColumns="False"
ItemsSource="{Binding SSID}"
>
<DataGrid.Columns>
<DataGridTextColumn Width="100" Header="Network ID" Binding="{Binding _networkID}"/>
<DataGridTextColumn Width="100" Header="SSID" Binding="{Binding _ssid}"/>
<DataGridComboBoxColumn Width="100" Header="Profile/Groups" SelectedItemBinding="{Binding _apProfiles}" />
</DataGrid.Columns>
</DataGrid>
public List<string> _apProfiles = new List<string>()
{
"21-ARC1000MAP , Indoor Radio b/g/n",
"22-ARC2000MAP , Dual Radio a/n, b/g/n"
};
请指导我如何解决这个问题。任何帮助都会非常明显。
答案 0 :(得分:1)
您需要绑定datagridcomboboxcolumn itemssource。
<DataGridComboBoxColumn Width="100" Header="Profile/Groups" ItemsSource="{Binding _apProfiles}" />
答案 1 :(得分:0)
如果为datagrid设置数据上下文,则datagrid中的列将在datagrid的数据上下文中查找数据。如果绑定到datagridcomboBox列的值不在(SSID)datagrid的数据上下文中,则应使用
<DataGridComboBoxColumn Width="100" Header="Profile/Groups" ItemsSource="{Binding _apProfiles, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
或者像这样
<DataGridComboBoxColumn Width="100" Header="Profile/Groups" ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext. _apProfiles}" />
希望这会有所帮助。