如何初始化IList
本文关键字:IList 初始化 | 更新日期: 2023-09-27 17:59:47
所以我的数据网格中填充了一个Ilist
public IList SelectedItem2 { get; set; }
我有一个双击操作,我想与在索引0处选择的行值交互。
<telerik:RadGridView SelectedItem="{Binding SelectedItem2}" ItemsSource="{Binding AllQueries, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="True">
<telerik:RadGridView.RowStyle>
<Style TargetType="telerik:GridViewRow">
<Setter Property="cal:Message.Attach" Value="[Event MouseDoubleClick] = [Open2()]"/>
</Style>
</telerik:RadGridView.RowStyle>
</telerik:RadGridView>
当我双击该行时,会产生此错误。错误生成Object reference not set to an instance of an object.
我想知道如何修复这个错误,通常在ViewModel中我会做一些类似的事情
SelectedItem2 = new IList();
但没有这样的东西:s
Open2 内
Interaction i;
IRecord vm;
using (var ctx = DB.Get()) i = ctx.Interactions.Find(SelectedItem2.IndexOf(0))
您无法初始化接口。您需要创建一个实现该接口的对象:
SelectedItem2 = new ArrayList();
或
SelectedItem2 = new List(of object);
如果你所有的值都是相同的类型,我更喜欢使用一个类型:
IList(Of string) SelectedItem2;
SelectedItem2 = new List(of string);
您需要使用实现IList
的类,如List<T>
(其中T
是列表可以包含的对象类型)或ArrayList
IList
的具体实现(例如SelectedItem2 = new List()
,而不是IList
)。
查看此链接http://social.msdn.microsoft.com/Forums/en-US/a30c4f18-eb14-4aa9-948f-701bb04b591e/list-initialization.无法初始化接口。所以你会这么做:
SelectedItem2 = new List();
Ilist是一个你应该使用列表来实例化的接口。
SelectedItem2 = new List();