2014-02-21 6 views
0

입력 상자로 동적으로 채워지는 RadDatagrid가 있습니다. 각 데이터 유형에는 고유 한 DataTemplate이 있습니다. 이제 텍스트 입력을 입력하고 Enter를 누르면 select가 다음 셀의 텍스트 상자를 엽니 다. 그것이 드롭 다운 목록을 가지고있는 셀이고 입력을 시작하면 셀에 문자열 값을 쓰게됩니다. 입력 된 값이 컨트롤에 복사되기 때문에이 메커니즘은 일반 입력 상자에서 작동하는 것 같습니다. 그러나 드롭 다운 목록의 경우 문자열을 목록에 입력 할 수 없으므로 오류가 발생합니다.RadDataGrid의 드롭 다운 목록 선택

마우스로 컨트롤을 선택하면 모든 것이 잘 동작합니다. 이는 키보드를 선택할 때만 발생합니다. 차이점은 컨트롤이 표 셀 대신 선택된다는 것입니다. 여기

은 템플릿의 XAML입니다 : 내가 컨트롤을 선택 programmaticaly하는 셀 변경 이벤트를 사용할 생각하고

<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> 

,하지만 난 그것을 선택하는 방법을 찾을 수 없습니다. 셀 편집 모드로 들어가는 것을 어떻게 막을 수 있습니까?

답변

0

텔 레릭의 답변을 얻었습니다. 해결 방법은 전체 열을 읽기 전용으로 설정하고 TextBlock 필드를 TextBox로 바꾸는 것입니다. 읽기 전용으로는 열 자체의 컨트롤 만 사용할 수 없으므로 컨트롤 자체의 필드에는 편집 모드로 들어갈 수 없습니다.

관련 문제