Вывод данных из веб-сервиса в сетку данных WPF - PullRequest
0 голосов
/ 07 августа 2010

Я пытаюсь перечислить данные из веб-сервиса в таблице данных (wpf), но я не знаю, что я делаю неправильно, или выдает ошибки или ничего не перечисляет. Вот как у меня сейчас.

WINDOWS.XAML

<Window x:Class="IssueAddinOutlook.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
    Title="Issue List" Height="424" Width="696">

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="102*" />
        <ColumnDefinition Width="590*" />
    </Grid.ColumnDefinitions>
    <Label Height="41" Margin="172,0,265,0" Name="label1" VerticalAlignment="Top" FontSize="22" Grid.Column="1">Issue List</Label>

    <dg:DataGrid x:Name="dataGrid" AutoGenerateColumns="True"
         AlternationCount="2"

         HeadersVisibility="All"
         HorizontalGridLinesBrush="#DDDDDD"
         VerticalGridLinesBrush="#DDDDDD" Grid.ColumnSpan="2" Margin="0,0,28,26">

        <dg:DataGrid.Columns>
            <dg:DataGridTextColumn Header="ID Issue" Binding="{Binding Path=Id}" />
            <dg:DataGridTextColumn Header="Order Id" Binding="{Binding Path=OrderId}" />
            <dg:DataGridTextColumn Header="Is Done" Binding="{Binding Path=IsDone}" />
            <dg:DataGridTextColumn Header="Final Comment" Binding="{Binding Path=FinalComment}" />
            <dg:DataGridTextColumn Header="Actual Hours" Binding="{Binding Path=ActualHours}" />
            <dg:DataGridTextColumn Header="Group Id" Binding="{Binding Path=GroupId}" />
        </dg:DataGrid.Columns>
    </dg:DataGrid>
</Grid>
<Window.Resources>
    <Style x:Key="columnHeaderStyle" TargetType="{x:Type dg:DataGridColumnHeader}">
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                    <LinearGradientBrush.GradientStops>
                        <GradientStop Color="Navy" Offset="0" />
                        <GradientStop Color="LightBlue" Offset="1" />
                    </LinearGradientBrush.GradientStops>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter Property="Foreground" Value="White" />
    </Style>
    <Style x:Key="rowStyle" TargetType="dg:DataGridRow">
        <Setter Property="FontFamily" Value="Verdana" />
        <Setter Property="FontSize" Value="10" />
        <Style.Triggers>
            <Trigger Property="AlternationIndex" Value="0">
                <Setter Property="Background" Value="White" />
            </Trigger>
            <Trigger Property="AlternationIndex" Value="1">
                <Setter Property="Background" Value="#DDDDDD" />
            </Trigger>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="#BBBBBB" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

И WINDOWS.XAML.CS

 Issuereference.Tasks issueRef = new Issuereference.Tasks();
 Issuereference.TASK[] tasksList = issueRef.GetTasks(39);
 dataGrid.ItemsSource = tasksList.ToList();

с этим кодом выдает ошибку Коллекция элементов должна быть пустой перед использованием ItemsSource. Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 07 августа 2010

Ваш код работает нормально.В любом случае, присваивая ItemsSource, есть ли что-нибудь, что уже появляется внутри сетки?Или есть какая-то часть приложения, которая вручную добавляет элементы в DataGrid?Это сообщение об ошибке обычно означает, что часть приложения обновила коллекцию ItemsControl, пока у нее есть назначенный ItemsSource.Надеюсь, что это имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...