我有DiscoveredHosts這是一個ObservableCollection<string>
。沒有調用sourceupdated事件。有人知道爲什麼sourceupdated event not firing
<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");
}
我不明白這一點:OnPropertyChanged( 「DiscoveredHosts」); 您可以添加DiscoveredHosts屬性的聲明嗎?我認爲使用ObservableCollection的想法是爲了避免「手動」調用OnPropertyChange方法。有些東西看起來不正確IMO。 – Marcote 2011-04-04 18:42:23
哦,是的。我知道這就是你使用ObservableCollection的原因;然而,有人向我提出質疑,認爲這可能不會發生,我已經考慮過同樣的問題。我在這裏離開了這條線,所以沒人會說,「你爲什麼不試試......」哈哈。 public ObservableCollection DiscoveredHosts {get {return _discoveredHosts ?? (_discoveredHosts = new ObservableCollection ()); }} –
Bluebaron
2011-04-04 19:23:20