2014-02-21 34 views
0

我有一個用輸入框動態填充的RadDatagrid。每個數據類型都有它自己的DataTemplate。現在,當我輸入一個文本輸入並按下回車鍵時,選擇將在下一個單元格上打開一個文本框。如果這是一個有下拉列表的單元格,並且我開始鍵入,它將開始在單元格中寫入一個字符串值。我猜這個機制適用於普通的輸入框,因爲輸入的值只是複製到控件中。但是對於下拉列表,它會導致錯誤,因爲您無法將字符串輸入到列表中。在RadDataGrid中選擇下拉列表

當用鼠標選擇控件時,一切正常。這僅在鍵盤選擇時發生。我認爲不同之處在於控件被選中而不是網格單元。

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

我從Telerik那裏得到了答案。解決方法是將整列設置爲只讀,並用TextBox替換任何TextBlock字段。 「只讀」不會禁用列中的控件,只會禁用字段本身,因此不再可以在控件下的字段中輸入編輯模式。