我有一个ObservableCollection<string>
的DiscoveredHosts。 sourceupdated事件未被调用。谁知道为什么?
<ComboBox Name="DiscoveredHostsComboBox" VerticalAlignment="Center" Grid.Column="0"
HorizontalAlignment="Center" MinWidth="100px" ItemsSource="{Binding Path=
DiscoveredHosts}" SourceUpdated="DiscoveredHostsComboBox_SourceUpdated" />
public void GetDomainHosts()
{
DiscoveredHosts.Clear();
var adapters = NetworkInterface.GetAllNetworkInterfaces();
if (Config.Debug)
{
DiscoveredHosts.Add("192.168.73.11");
DiscoveredHosts.Add("192.168.73.14");
}
foreach (var properties in adapters.Select(adapter => adapter.GetIPProperties()))
{
if (properties.DnsSuffix != "" && !DiscoveredHosts.Contains(
properties.DnsSuffix))
DiscoveredHosts.Add(properties.DnsSuffix);
if (properties.DnsAddresses.Count <= 0) continue;
foreach (var host in properties.DnsAddresses.Where(host => !DiscoveredHosts.
Any(a => a == host.ToString())))
DiscoveredHosts.Add(host.ToString());
}
OnPropertyChanged("DiscoveredHosts");
}
答案 0 :(得分:3)
请将NotifyOnSourceUpdated设置为true,以便触发SourceUpdated事件:
<ComboBox Name="DiscoveredHostsComboBox" VerticalAlignment="Center" Grid.Column="0" HorizontalAlignment="Center" MinWidth="100px"
ItemsSource="{Binding Path=DiscoveredHosts, NotifyOnSourceUpdated=True}"
SourceUpdated="DiscoveredHostsComboBox_SourceUpdated" />