2014-07-07 447 views
1

我在DataGrid中有一個允許IsTextSearchEnabled的組合框。這可以工作,但用戶可以在組合框中找不到該項目時放置自己的文本。有沒有一個屬性可以阻止這個,或者我可以做些什麼來阻止用戶添加他們自己的文本?WPF Combobox屬性IsTextSearchEnabled - 如何不允許自己的文本

的XAML

<DataGridTemplateColumn.CellEditingTemplate> 
       <DataTemplate> 
       <ComboBox ItemsSource="{Binding DataContext.Types, 
          RelativeSource={RelativeSource Mode=FindAncestor, 
                AncestorType=Window}}" 
            x:Name="cmbDeploymentEditType" 
            SelectedItem="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
            SelectedValue="Type" 
            Text="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
            IsTextSearchEnabled="True" 
            IsSynchronizedWithCurrentItem="False" 
            IsEditable="True"> 
       </ComboBox> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellEditingTemplate> 

感謝

+0

也許OnLostFocus事件處理程序或某個OnSubmit事件清除組合框項目,如果它不在源集合中? –

+0

我以爲這是最後的手段,基本上如果xaml無法做到這一點。不好看!謝謝! – user3428422

回答

0

有多種方法可以解決這個問題,你可以使用與CustomValueEnteredAction設置停止這種像XamMultiColumnComboEditor控制。或者你可以做validation來執行你想要的規則。