WPFToolkit AutoCompleteBox 属性 文本在 select 项后未更新
WPFToolkit AutoCompleteBox Property Text is not updated after select item
列表中的 select 项后,自动组合框的文本 属性 未更新。
XAML:
<toolkit:AutoCompleteBox Name="acbAuftragsnummer" >
隐藏代码:
acbAuftragsnummer.ItemsSource = list; // String List that contains proposals
string text = acbAuftragsnummer.Text; // Contains only entered text, but not selected text from proposal list
附加信息:
如果输入的文本至少有 3 个字符,我只想让 AutoCompleteBox 提出建议。所以我有一个像这样的 TextChanged EventHandler:
private void acbAuftragsnummer_TextChanged(object sender, RoutedEventArgs e)
{
if (acbAuftragsnummer.Text.Length > 2)
{
acbAuftragsnummer.ItemsSource = _vorschlaegeAuftragsnummerList.Where(o => o.StartsWith(acbAuftragsnummer.Text)).Take(10);
}
}
如果我从列表中选择一些元素,这也会更新 ItemsSource。这似乎导致了问题。
您是否将文本框限制为仅显示源集合中的条目?我怀疑这不是允许任何值,即使 null
以前的文本也是有效的
我只删除了 TextChanged 事件处理程序并将列表添加到 AutoCompleteBox 一次(如果页面已加载)。然后我使用 MinimumPrefixLength="3" 来达到我的要求。
列表中的 select 项后,自动组合框的文本 属性 未更新。
XAML:
<toolkit:AutoCompleteBox Name="acbAuftragsnummer" >
隐藏代码:
acbAuftragsnummer.ItemsSource = list; // String List that contains proposals
string text = acbAuftragsnummer.Text; // Contains only entered text, but not selected text from proposal list
附加信息: 如果输入的文本至少有 3 个字符,我只想让 AutoCompleteBox 提出建议。所以我有一个像这样的 TextChanged EventHandler:
private void acbAuftragsnummer_TextChanged(object sender, RoutedEventArgs e)
{
if (acbAuftragsnummer.Text.Length > 2)
{
acbAuftragsnummer.ItemsSource = _vorschlaegeAuftragsnummerList.Where(o => o.StartsWith(acbAuftragsnummer.Text)).Take(10);
}
}
如果我从列表中选择一些元素,这也会更新 ItemsSource。这似乎导致了问题。
您是否将文本框限制为仅显示源集合中的条目?我怀疑这不是允许任何值,即使 null
以前的文本也是有效的我只删除了 TextChanged 事件处理程序并将列表添加到 AutoCompleteBox 一次(如果页面已加载)。然后我使用 MinimumPrefixLength="3" 来达到我的要求。