我正在使用此列表:
List<AssetListData> assetList = new List<AssetListData>();
填写数据,并使用以下代码将其绑定到我的RadGridView
:
AssetList_GridView.ItemsSource = assetList;
现在我的GridView
有两列(Name
和Type
)。我在ContextMenu
中创建了一个AssetList_GridView
,其中包含Edit
和Delete
。点击ContextMenu
后我需要获取值,但失败了。我在ContextMenu
中的点击事件中尝试了此代码:
private void GridContextMenu_ItemClick(object sender, Telerik.Windows.RadRoutedEventArgs e)
{
MenuItem item = (e.OriginalSource as RadMenuItem).DataContext as MenuItem;
switch (item.Text)
{
case "Edit Asset":
var typeValue = ((assetListData)AssetList_GridView.SelectedItem).assetType;
this.AssetList_GridView.BeginEdit();
break;
case "Delete Asset":
this.AssetList_GridView.Items.Remove(this.AssetList_GridView.SelectedItem);
break;
}
}
来自var typeValue = ((assetListData)AssetList_GridView.SelectedItem).assetType;
的错误说:
找不到资产列表。
为什么我无法在此处访问assetList
,但我可以访问GridView
ItemsSource
?
有没有简单的方法从点击的行中获取价值?
答案 0 :(得分:2)
SelectedItem无法重新输入LIST,如果你想重新输入它,你应该使用
var typeValue = ((AssetListData)AssetList_GridView.SelectedItem).assetType;