我有一个Dictionary,我用作DataGridTemplateColumn的ItemsSource来创建ComboBox,但有时特定的列没有任何可供选择的选项,我想改用DataGridTextColumn。
当列可以有选项供选择时,它应该显示。
<DataGridTemplateColumn Header="MyColumn">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}" Converter="{StaticResource DictionaryConverter}">
<Binding Path="MyDictionary" RelativeSource="{RelativeSource AncestorType={x:Type UserControl}}"/>
<Binding Path="MyItemID" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding MyDictionary, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
SelectedValuePath="Key" DisplayMemberPath="Value"
SelectedValue="{Binding MyItemID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="True"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
当列没有可供选择的选项时,它应该显示。
<DataGridTextColumn IsReadOnly="True" Header="MyColumn" Binding="{Binding MyColumnInfo, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
如果没有创建单独的列并在适当的时候隐藏/取消隐藏,有没有办法做到这一点?
示例:
如果形状定义为圆形没有角,那么我不应该显示一个下拉列表,让用户选择它们在形状上需要多少个角。