Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在RadDataGrid中选择下拉列表_C#_Wpf_Telerik_Telerik Grid - Fatal编程技术网

C# 在RadDataGrid中选择下拉列表

C# 在RadDataGrid中选择下拉列表,c#,wpf,telerik,telerik-grid,C#,Wpf,Telerik,Telerik Grid,我有一个RadDatagrid,它动态填充了输入框。每个数据类型都有自己的数据模板。现在,当我输入文本并按enter键时,select将在下一个单元格中打开一个文本框。如果这是一个有下拉列表的单元格,我开始输入,它将开始在单元格中写入字符串值。我猜这种机制适用于普通的输入框,因为键入的值只是复制到控件中。但对于下拉列表,它会导致错误,因为您无法在列表中输入字符串 用鼠标选择控件时,一切正常。这仅在选择键盘时发生。我认为区别在于控件被选中,而不是网格单元 以下是模板的XAML: <local

我有一个RadDatagrid,它动态填充了输入框。每个数据类型都有自己的数据模板。现在,当我输入文本并按enter键时,select将在下一个单元格中打开一个文本框。如果这是一个有下拉列表的单元格,我开始输入,它将开始在单元格中写入字符串值。我猜这种机制适用于普通的输入框,因为键入的值只是复制到控件中。但对于下拉列表,它会导致错误,因为您无法在列表中输入字符串

用鼠标选择控件时,一切正常。这仅在选择键盘时发生。我认为区别在于控件被选中,而不是网格单元

以下是模板的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>


我想用cell changed事件来编程我选择控件,但似乎找不到选择它的方法。我怎样才能阻止它进入单元格编辑模式?

我从Telerik那里得到了答案。解决方案是将整个列设置为只读,并用文本框替换任何TextBlock字段。只读不禁用列中的控件,仅禁用字段本身,因此无法再在控件下的字段中进入编辑模式