我有一个RadDatagrid,它使用输入框动态填充。每种数据类型都有自己的DataTemplate。现在,当我输入文本输入并按下输入时,选择将在下一个单元格上打开一个文本框。如果那是一个有下拉列表的单元格,我开始输入它将开始在单元格中写入一个字符串值。我想该机制适用于普通输入框,因为输入的值只是复制到控件中。但是对于下拉列表,它会导致错误,因为您无法在列表中输入字符串。
用鼠标选择控件时一切正常。这仅在键盘选择时发生。我认为区别在于控件被选中而不是网格单元。
以下是模板的XAML:
<local:SettingValueTemplateSelector.DictionaryTemplate>
<DataTemplate>
<telerik:RadComboBox
SelectedValuePath="Key"
DisplayMemberPath="Value"
SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}"
IsEnabled="{Binding IsWritable}">
<telerik:RadComboBox.ItemsSource>
<MultiBinding Converter="{StaticResource InputTypeConverter}" ConverterParameter="dictionary">
<Binding Path="SettingsValue" Mode="TwoWay"/>
<Binding Path="Type" Mode="OneWay"/>
</MultiBinding>
</telerik:RadComboBox.ItemsSource>
</telerik:RadComboBox>
</DataTemplate>
</local:SettingValueTemplateSelector.DictionaryTemplate>
我正在考虑使用单元格更改事件来programmaticaly选择控件,但我似乎无法找到一种方法来选择它。如何阻止它进入单元格编辑模式?
答案 0 :(得分:0)
我从Telerik那里得到了答案。解决方案是将整列设置为只读,并用TextBox替换任何TextBlock字段。只读不会禁用列中的控件,只禁用字段本身,因此不再可以在控件下的字段中进入编辑模式。