我在 WPF 窗口上有多个组合框。每个都是从 ViewModel 填充的。我正在尝试实现自动完成。我尝试过使用 WPF 组合框和 Telerik 组合框。我什至无法开始测试我的自动完成功能是否有效,因为我无法输入组合框。我只能使用退格键和空格键。我将 IsEditable 设置为 true。我缺少一些非常基本的东西吗?
我来自其中一个组合框的 xaml
<DockPanel Style="{StaticResource DockPanelStyle}">
<Label Content="Model" DockPanel.Dock="Top"/>
<telerik:RadComboBox x:Name="cboModel" DockPanel.Dock="Bottom" Width="100" ItemsSource="{Binding Path=Models}"
ItemTemplate="{StaticResource ComboBoxCustomTemplate}" IsEditable="True" StaysOpenOnEdit="True"
telerik:TextSearch.TextPath="value"/>
</DockPanel>
上面的 DockPanel 位于网格内的堆栈面板内。
这是我的 ViewModel 中的相关代码
public void LoadModels()
{
try
{
List<CommonData.Model> model = factory.GetStaticModels();
foreach (CommonData.Model m in model)
{
Models.Add(new CommonData.Model()
{
value = m.value
});
}
}
catch (Exception ex)
{
//leaving this out
}
}
private List<CommonData.Model> _models = new List<CommonData.Model>();
public List<CommonData.Model> Models
{
get
{
return _models;
}
set
{
_models = value;
OnPropertyChanged("Models");
}
}
最后,这是我的模型类(不是 MVVM 模型,类的名称是模型)
[可序列化]
public class Model
{
private string models;
public string value
{
get;
set;
}
}
非常感谢任何帮助/建议。我对 WPF 很陌生,我觉得我错过了一些非常基本的东西,但是在这上面花了 3-4 天的大部分时间,现在变得非常荒谬。