1
当我添加到组合框属性IsEditable="True"
它会自动收到“自动完成”行为。Auto Suggest ComboBox - MVVM
有没有办法添加到此组合框的“自动建议”行为?
我的意思是,当在组合框中书写时,会打开一个带有上述标题的选项列表。
(如果可能的话=不破坏MVVM)
当我添加到组合框属性IsEditable="True"
它会自动收到“自动完成”行为。Auto Suggest ComboBox - MVVM
有没有办法添加到此组合框的“自动建议”行为?
我的意思是,当在组合框中书写时,会打开一个带有上述标题的选项列表。
(如果可能的话=不破坏MVVM)
在这里,您使用标准组合框和动画
<ComboBox IsEditable="True">
<ComboBoxItem>Orange</ComboBoxItem>
<ComboBoxItem>Apple</ComboBoxItem>
<ComboBoxItem>Banana</ComboBoxItem>
<ComboBoxItem>Cherry</ComboBoxItem>
<ComboBox.Triggers>
<EventTrigger RoutedEvent="TextBoxBase.TextChanged">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsDropDownOpen">
<DiscreteBooleanKeyFrame Value="True" KeyTime="0:0:0"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ComboBox.Triggers>
</ComboBox>
给这个去
我尝试添加自动提示类的行为试一试,让我知道如果这是你正在寻找的,更复杂的行为可能需要一些额外的努力
的组合项目添加建议过滤
XAML
<ComboBox IsEditable="True"
ItemsSource="{Binding ComboItems}"
Text="{Binding ComboText,Mode=OneWayToSource}">
<ComboBox.Triggers>
<EventTrigger RoutedEvent="TextBoxBase.TextChanged">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsDropDownOpen">
<DiscreteBooleanKeyFrame Value="True"
KeyTime="0:0:0" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ComboBox.Triggers>
</ComboBox>
视图模型
public ICollectionView ComboItems{ get; set; }
public string ComboText
{
get
{
throw new NotImplementedException();
}
set
{
ComboItems.Filter = item => item.ToString().ToLower().Contains(value.ToLower());
}
}
您可能需要根据您的项目类型来过滤,上面是字符串值
初始化ComboItems
var myItems = new[] { "Apple", "Orange", "Cherry", "Banana" };
ComboItems = CollectionViewSource.GetDefaultView(myItems);
您的藏品取代我的项目
我在寻找自动提示,这意味着任何时候你添加文字的组合框与suggestes通过你写的文本过滤器打开。 –
那么你也转发组合列表进行过滤吗?你也许可以分享一些屏幕了解更多细节。 – pushpraj
为什么IsTextSearchEnable无法完成这项工作? –