c# - 为多个组合框设置 IsDropDownOpen
问题描述
我有一个列表ViewModels
。List 包含 aLabelViewModel
并ComboBoxViewModel
在 a 中显示它们View
。基本上,当视图显示时,两个组合框都应该打开。我试图使用该IsDropDownOpen
属性。第一个盒子会打开,但下拉菜单消失得很快,只有第二个盒子保持打开状态。似乎他无法决定打开哪一个。
那是我的视图模型:
public class WortAuswahlCollectionViewModel : ViewModelBase
{
public EventHandler<SelectionChangedEventArgs> AuswahlChanged;
public WortAuswahlCollectionViewModel(List<UniqueString> wortAuswahl)
{
if (wortAuswahl != null)
{
WortAuswahlCollection = new ObservableCollection<UniqueString>(wortAuswahl);
if (WortAuswahlCollection[0].Value.Length > WortAuswahlCollection[1].Value.Length)
{
ComboBoxSize = WortAuswahlCollection[0].Value.Length * 28;
MaxComboBoxSize = ComboBoxSize * 10;
}
else
{
ComboBoxSize = WortAuswahlCollection[1].Value.Length * 28;
MaxComboBoxSize = ComboBoxSize * 10;
}
}
}
private ObservableCollection<UniqueString> m_wortAuswahlCollection;
public ObservableCollection<UniqueString> WortAuswahlCollection
{
get
{
return m_wortAuswahlCollection;
}
set
{
if (m_wortAuswahlCollection != value)
{
m_wortAuswahlCollection = value;
OnPropertyChanged();
}
}
}
private int m_comboBoxSize;
public int ComboBoxSize
{
get
{
return m_comboBoxSize;
}
set
{
if (m_comboBoxSize != value)
{
m_comboBoxSize = value;
OnPropertyChanged();
}
}
}
private int m_maxComboBoxSize;
public int MaxComboBoxSize
{
get
{
return m_maxComboBoxSize;
}
set
{
if (m_maxComboBoxSize != value)
{
m_maxComboBoxSize = value;
OnPropertyChanged();
}
}
}
}
}
XAML:
<Grid>
<ComboBox ItemsSource="{Binding WortAuswahlCollection}" Style="{StaticResource MaterialDesignFilledComboBox}" MinWidth="{Binding ComboBoxSize}" MaxWidth="{Binding MaxComboBoxSize}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path= Value}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
解决方案
您不能同时打开两个 ComboBox 控件。内部 Popup 控件在打开时捕获鼠标,因此当另一个 ComboBox 打开时会自动关闭。
推荐阅读
- database-backups - MS SQL 2017 Express:还原备份时出现奇怪错误
- python - 如何检查任意类实例是否存在并从另一个模块调用其方法?
- github - npm 安装一个分叉的分支
- regex - Angular 5 表单自定义验证无法正常工作
- ios - UIButton 框架在平移时不会改变
- sql - 像“元素”上的子句 - ORACLE APEX
- foreach - Makefile foreach 编译主题
- java - Web 应用程序抛出 load() 异常 java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
- java - 为什么 PrintStream API 说 PrintStream 总是使用平台的默认编码转换为字节,而有编码的构造函数?
- node.js - 如何使用 React 前端显示来自 Mongoose的图像