【发布时间】:2020-09-21 01:02:19
【问题描述】:
我需要使用 excel 工作簿和一些工作表。
要将可用的工作表加载到组合框中,我需要打开工作簿并遍历所有工作表并将它们添加到组合框中。这需要花费大量时间,用户需要等待。如果用户不想更改预加载的属性,那么这个时间就被浪费了。所以我只想在需要时填写列表项,但显示预选属性,该属性是在应用启动时从设置文件加载的。
那么有没有办法在下拉列表中加载项目?或者更好的是,如何绑定在下拉菜单中触发的命令以加载项目?
<ComboBox SelectedItem="{Binding Worksheet}" ItemsSource="{Binding WorkSheets}" x:Name="cbWorkSheet" Padding="4">
...哦,我知道如何将命令绑定到按钮,所以我需要组合框的特殊提示,而不是一般的命令:)
更新 我解决了触发“加载”并填充列表但我需要显示最后选择的值(在启动时作为绑定属性工作表加载)
<ComboBox
x:Name="cbWorkSheet"
SelectedItem="{Binding Worksheet}"
ItemsSource="{Binding WorkSheets}"
IsEditable="True"
Padding="4">
<i:Interaction.Triggers>
<i:EventTrigger EventName="DropDownOpened" SourceObject="{Binding ElementName=cbWorkSheet}">
<i:InvokeCommandAction Command="{Binding LoadBACnetWsCombobox}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
使用该绑定,组合框保持为空,直到我将其下拉:(
【问题讨论】:
-
能否贴出更新工作表属性的代码。
-
嗯...也许我需要澄清这一点。我有该属性,该属性是在以前使用该应用程序时选择的。因此,如果用户不想更改此属性,则无需填写组合框的列表项。该属性绑定到组合框的 SelectedItem,因此它应该在启动时显示。如果用户想改变这个属性,他必须从组合框中选择另一个,现在是填充项目列表的点。