c# - WPF MVVM - 单击时更新下拉列表

标签 c# wpf drop-down-menu combobox

我有一个下拉列表 (ComboBox),显示机器上所有可用的 com 端口。现在,当您连接和断开设备时,端口会来来去去。

出于性能原因,我不想继续调用 System.IO.Ports.SerialPort.GetPortNames(),而只是在用户单击组合框时调用它?这可能吗?是否有解决此问题的 MVVM 方法?

最佳答案

使用 InvokeCommandAction

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

DropDownOpenedCommand 是 ViewModel 上的一个 ICommand 属性。

<ComboBox>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="DropDownOpened">
            <i:InvokeCommandAction Command="{Binding DropDownOpenedCommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</ComboBox>

编辑:显然 DropDownOpened 而不是 SelectionChanged,正如 Patrice 评论的那样。

关于c# - WPF MVVM - 单击时更新下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26040851/

相关文章:

c# - 使用其他模块中的类

c# - 我的 ItemsControl 和数据绑定(bind)有什么问题?

c# - 出错时重试异步文件上传

c# - 如何判断另一个应用程序是否注册了 IPC Remoting channel ?

c# - StringFormat 和带标签的多重绑定(bind)

c# - 在下拉列表中显示层次结构

javascript - 如何使用 JSON 字符串化数据附加下拉列表

Safari 中的 CSS 下拉菜单问题

c# - 加入,然后使用 linq 查询将列表选择到列表中

wpf - WPF异步验证的最佳做法?