Binding Wpf

  • Автор темы Dash
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dash

#1
Почему так работает:
<!--shcode--><pre><code class='c#'>List<КлиентИнфо<Клиент>> list;
private void кнопкаСтарт_Click(object sender, RoutedEventArgs e) {
list = new List<КлиентИнфо<Клиент>>(_Сервер.Подключения);
списокПодключений.ItemsSource = list;
}[/CODE]
а так - нет:
<!--shcode--><pre><code class='c#'>private void кнопкаСтарт_Click(object sender, RoutedEventArgs e) {
списокПодключений.ItemsSource = _Сервер.Подключения;
}[/CODE]
Спасибо.
 
D

Dash

#2
_Сервер.Подключения - это List<КлиентИнфо<IКлиент>>
Не работает - значит не отображает на форме.
 
D

Dash

#3
Вот выжимки из кода (с небольшой редакцией):
C++:
public interface IКлиент {}

public class КлиентИнфо {
public КлиентИнфо(IКлиент клиент, DateTime время) {}
}

public abstract class Сервер<TКлиент> where TКлиент : IКлиент {
private List<КлиентИнфо> _Подключения = new List<КлиентИнфо>();
public List<КлиентИнфо> Подключения {
get { return _Подключения; }
}
void Accept_Completed(object sender, SocketAsyncEventArgs e) {
TКлиент клиент;
СоздатьКлиента(out клиент, e.AcceptSocket);
_Подключения.Add(new КлиентИнфо(клиент, TimeZoneInfo.ConvertTimeToUtc(DateTime.Now)));
}
}

public class Клиент : IКлиент {}

public class Сервер : Сервер<Клиент> {
protected override void СоздатьКлиента(out Клиент клиент, Socket сокет) {
клиент = new Клиент(сокет);
}
}
Когда создаю новую коллекцию, то данные отображаются на форме:
C++:
_Сервер.Подключения = new List<КлиентИнфо>(_Сервер.Подключения);
списокПодключений.ItemsSource = _Сервер.Подключения;
как только убираю первую строку - не отображаются. Как будто _Сервер.Подключения не было окончательно сформировано в список.
В чём дело?
 
Статус
Закрыто для дальнейших ответов.