суббота, 6 июня 2009 г.

Простое добавление строк в DataGrid из WPF Toolkit

Есть такой замечательный контрол для WPF – DataGrid. Он входит в состав WPF Toolkit. Но просто добавить строки в эту таблицу, как, например, в аналогичный контрол из Windows Forms 2.0, не получится. Надо действовать так: DataGrid нужно связать её с какой-нибудь коллекцией. Изменится коллекция - изменятся и строки в DataGrid.
Создаём класс с полями, аналогичными столбцам в таблице:
public class Person{
    public string Name { get; set; }
    public string EMail { get; set; }
}
Объявляем коллекцию:
ObservableCollection<Person> coll = new ObservableCollection<Person>();
И добавляем элементы в коллекцию вот так:

coll.Add(
new Person() { Name = "Frank Grimmes", EMail = "mail@mail.mail" });
И привязываем коллекция к DataGrid:

dataGrid.ItemsSource = coll;
dataGrid.Items.Refresh();
После какого-либо изменения коллекции надо обновить "элементы" таблицы:

dataGrid.Items.Refresh();
И напоследок: в XAML создавать колонки надо так:
<my:DataGrid.Columns>
    <
my:DataGridTextColumn Header="Имя" Binding="{Binding Path=Name}" />
    <
my:DataGridHyperlinkColumn Header="Электронная почта" Binding="{Binding Path=EMail}" />
</
my:DataGrid.Columns>
P.S. : а ещё можно заставить класс Person наследовать интерфейс INotifyPropertyChange. Тогда не нужно будет обновлять таблицу каждый раз после изменения. Это будет делаться автоматически. Подробнее здесь. Вот и всё.

вторник, 12 мая 2009 г.

Маленький обзор зарубежных сервисов блогов для разработчиков

Я давно выбирал себе сервис блогов, вот я выбрал и решил привести небольшой обзор этих сервисов. Я искал зарубежный, удобный для программиста сервис, что бы можно было постить длинные куски кода, была оригинальная подсветка этого кода
(как, например, в Visual Studio; хотя это не возможно, так как ни один сервис не будет держать в базе все названия классов платформы .NET Framework).
У меня стоял выбор между 4-мя сервисами:
spaces.live.com, windowsclient.net, Geekswithblogs.net, blogger.com.
Небольшой обзор каждого, плюсы и минусы. Поехали.