2013-07-17 49 views
0

在.net 3.5我有它得到这样的组合框的当前编辑的文本实现:获取可编辑的ComboBox的当前文本在.NET 4

dependencyObject.GetValue(ComboBox.TextProperty); 

一切正常和值的编辑的文本在ComboBox.Text-属性。现在我们升级到.NET 4,返回值是旧文本,而不是编辑文本,这是第一个奇怪的行为。但是,如果ComboBox的前一个值是ComboBox.ItemsSource中的项目,则上面的代码将返回编辑后的值。目前我不知道微软在.NET 4中改变了这个属性。有没有人有一个想法现在有什么不同?

+2

winforms或WPF?标记它。 –

+0

其WPF应用程序 – freakmoder

+0

也就是说,您需要在ComboBox中使用当前文本? –

回答

1

尝试使用Text属性是这样的:

XAML

<ComboBox Name="MyComboBox" IsEditable="True" IsTextSearchEnabled="True" SelectedIndex="0" Width="150" Height="30"> 
    <ComboBoxItem>3</ComboBoxItem> 
    <ComboBoxItem>2</ComboBoxItem> 
    <ComboBoxItem>4</ComboBoxItem>    
    <ComboBoxItem>6</ComboBoxItem> 
</ComboBox> 

<Button Width="100" Height="30" Content="GetEditedText" VerticalAlignment="Bottom" Click="Button_Click" /> 

Code behind

private void Button_Click(object sender, RoutedEventArgs e) 
{  
    MessageBox.Show(MyComboBox.Text.ToString()); 
} 

或者通过模板到TextBox访问:

private void Button_Click(object sender, RoutedEventArgs e) 
{  
    TextBox input = ((TextBox)MyComboBox.Template.FindName("PART_EditableTextBox", MyComboBox)); 

    MessageBox.Show(input.Text.ToString()); 
} 
相关问题