我有一个下拉列表 (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/