DataGrid (C#) Дублирование столбцов, update

387
07 февраля 2017, 18:38

Здравствуйте, пишу приложение на WPF. Пытаюсь добавлять в DataGrid записи, но они дублируют столбцы и сама таблица после их добавления не обновляется, хотя dg.ItemsSource.Count изменяется.

в разметке:

<DataGrid x:Name="dg" Margin="10,30,0,0" RenderTransformOrigin="2.583,2.231" HorizontalAlignment="Left" VerticalAlignment="Top">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="Image">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Image Source="{Binding Image}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTextColumn Binding="{Binding Text}" Header="Text" MaxWidth="100"/>
            <DataGridHyperlinkColumn Binding="{Binding Link}" Header="Link"/>
        </DataGrid.Columns>
    </DataGrid>

Класс элементов DG:

 class Post
{
    public string Text
    {
        get;
        set;
    }
    public string Link
    {
        get;
        set;
    }
    public ImageSource Image
    {
        get;
        set;
    }

}

Использование в коде:

private void button_Click(object sender, RoutedEventArgs e)
    {
        if (dg.Items.Count == 0)
        {
            ImageSource img = new BitmapImage(new Uri("Images/web.ico", UriKind.Relative));
            posts.Add(new Post { Image = img, Link = "http://vk.com/id02", Text = "Some adds1" });
            dg.ItemsSource = posts;
        }
        else
        {
            AddPost();
        }
    }
    private void AddPost()
    {
        MessageBox.Show(dg.Items.Count.ToString());
        ImageSource img = new BitmapImage(new Uri("Images/web.ico", UriKind.Relative));
        posts.Add(new Post { Image = img, Link = "http://vk.com/id02", Text = "Some adds1" });
        posts.Add(new Post { Image = img, Link = "http://vk.com/id01", Text = "Some adds2" });
        posts.Add(new Post { Image = img, Link = "http://vk.com/id03", Text = "Some adds3" });
    }
Answer 1

В общем чтобы убрать дублирование отключаем AutoGenerateColumns в DataGrid, для обновления записей надо использовать ObservableCollection, а не List.

READ ALSO
Изменение значения ProgressBar на C# WPF

Изменение значения ProgressBar на C# WPF

У меня есть приложение на wpf, которое достаточно долго пингует ряд ip-шниковЗахотелось установить ProgressBar

494
Наследование generic-класса от интерфейса

Наследование generic-класса от интерфейса

У меня есть классы и интерфейсы:

486
Символ юникода для имени хоста

Символ юникода для имени хоста

Могу ли я каким то образом, запустив httpListener по префиксу "http://+:8080", после этого послать на него запрос? Или же символы юникода нельзя использовать...

478