Zeu*_*s82 3 c# wpf combobox drop-down-menu
我有一个下拉列表(ComboBox),显示计算机上可用的所有COM端口.现在,当您连接和断开设备时,端口会进出.
出于性能原因,我不想继续通话System.IO.Ports.SerialPort.GetPortNames(),而只是在用户点击Combobox时调用它?这可能吗?是否有MVVM方法来解决这个问题?
使用InvokeCommandAction.
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Run Code Online (Sandbox Code Playgroud)
DropDownOpenedCommand是ICommandViewModel上的属性.
<ComboBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="DropDownOpened">
<i:InvokeCommandAction Command="{Binding DropDownOpenedCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
编辑:显然DropDownOpened不是SelectionChanged,正如Patrice评论的那样.
您可以使用 MVVMLight 的 EventToCommand 之类的东西来完成此操作。基本上,单击组合的事件将挂钩到 MVVM 命令绑定,然后触发调用 GetPortNames() 的方法。
以下是一些替代方案:
MVVM Light:在 XAML 中添加 EventToCommand 而无需 Blend,更简单的方法或片段?(检查已接受的答案)
http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/(棱镜)
| 归档时间: |
|
| 查看次数: |
5820 次 |
| 最近记录: |