我正在努力使组合框可编辑。
组合框具有数据绑定功能,可以使用数据库中的名称列表进行更新。 如果列表中不存在所需的名称,则用户可以使用此组合框输入新名称(IsEditable设置为true)。
此外,数据库中有一些以前项目的记录,我希望根据项目选择显示,用户想要更新。
这是XAML代码
基于TPTypeComboBox选择
<ComboBox Height="23" HorizontalAlignment="Left" Margin="285,68,0,0" Name="TPTypeComboBox" VerticalAlignment="Top" Width="119" ItemsSource="{Binding}" DisplayMemberPath="name" SelectionChanged="TPTypeComboBox_SelectionChanged"/>
更新ProjectIDUsedComboBox的代码
private void TPTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ProjectIDUsedComboTxtBox.DataContext = DBConnector.IsTPRecordsExists(); // ISTPRecordsEsixts returns DataTable
}
这是XAML代码(可编辑的组合框)
<ComboBox Height="22" HorizontalAlignment="Left" Margin="131,144,0,0" Name="ProjectIDUsedComboTxtBox" VerticalAlignment="Top" Width="271" IsEditable="True"
ItemsSource="{Binding}" DisplayMemberPath="project_name_used" SelectionChanged="ProjectIDUsedComboTxtBox_SelectionChanged" />
现在我想从输入的文本中读取新输入的值。
现在点击“更新”按钮,我试图从可编辑的组合框中读取值。
<Button Content="Update" Height="24" HorizontalAlignment="Left" Margin="227,596,0,0" Name="UpdateTPRecordButton" VerticalAlignment="Top" Width="74" Click="UpdateTPRecordButton_Click" />
首先我试图读取所选的值,如果它为null,那么我试图从文本中读取。
if (ProjectIDUsedComboTxtBox != null)
{
var selItem = (DataRowView)ProjectIDUsedComboTxtBox.SelectedItem;
if (selItem != null)
{
var temp = selItem.Row;
var value = (string)temp.ItemArray.GetValue(0);
}
else
{
var prjIDUsed = ProjectIDUsedComboTxtBox.Text.Trim();
}
}
但我总是将'ProjectIDUsedComboTxtBox'作为null。
任何建议/链接,如何阅读此文本值。
此致