我正在将当前的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;这很好。
有人有什么想法吗?
答案 0 :(得分:1)
如果您的方法GetLectures没有返回任何内容..您没有检查。不要直接进入.ToList()
,而是尝试将返回的值检查为null,或者使用Linq检查.Any()
var ABC = Client.GetLectures(Session);
If(ABC != null && ABC.Any())
return ABC.ToList();