WPF在某些WCF方法上返回NULL

时间:2015-11-17 11:45:22

标签: c# .net wpf wcf

我正在将当前的WinForms应用程序升级到WPF应用程序,并且遇到了一个奇怪的问题。

首先,方法( GetLectures )正在处理当前的应用程序,因此我知道WCF方法没有任何问题。

所以在我的WPF应用程序' V iewModel ' class我正在调用方法来获取所有的讲座( GetLectures )。

public List<Publish.Lecture> Lecture
{
     get
     {
         return Client.GetLectures(Session).ToList();
     }
}

然后我正在使用我的DataGrid:

<DataGrid BorderBrush="#e5e5e5" CellStyle="{StaticResource episodeDataGridCell}" RowHeaderWidth="0" GridLinesVisibility="None" Background="Transparent" HorizontalAlignment="Left" Margin="10,24,0,0" ItemsSource="{Binding Lecture}" Grid.Row="1" VerticalAlignment="Top" Height="435" Width="472" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Description}" CanUserResize="False" ClipboardContentBinding="{x:Null}" Header="Episode" Width="150"/>
            <DataGridTextColumn Binding="{x:Null}" CanUserResize="False" ClipboardContentBinding="{x:Null}" Header="Access" Width="150"/>
            <DataGridTextColumn Binding="{x:Null}" CanUserResize="False" ClipboardContentBinding="{x:Null}" Header="Player" Width="150"/>
        </DataGrid.Columns>
</DataGrid>

我在&#39; ViewModel &#39;中收到错误其中说:

Value cannot be null.

这表明什么都没有被退回?

我尝试在该WCF服务中调用另一种方法&#39; GetChannel &#39;这很好。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您的方法GetLectures没有返回任何内容..您没有检查。不要直接进入.ToList(),而是尝试将返回的值检查为null,或者使用Linq检查.Any()

var ABC = Client.GetLectures(Session);

If(ABC != null && ABC.Any())
   return ABC.ToList();