我有一个产品列表,坐在ListView中。每个产品都有详细信息如果我按下ListView中的某个产品中的按钮,则事件处理程序将绑定到产品及其所有详细信息。让我们说,为了论证,按钮会触发以下事件处理程序:
public async void OnClickViewImageCarousel(object sender, EventArgs e)
{
var selectedItemDetails = ((Button)sender).CommandParameter;
}
在调试期间,selectedItemDetails显示以下本地:
你如何访问这些字段?我怎么能这样做:
var FieldIWantToUse = selectedItemsDetails.ShortDescription
多谢你们。
var FieldIWantToUse = ((RackProduct)selectedItemsDetails.selectedItems).ShortDescription;
要么
var FieldIWantToUse = selectedItemsDetails.selectedItems.ShortDescription;
它有效吗?
您应该使用直接强制转换为listView所包含的项类型。一个小例子(对于弹出菜单,但想法相同):
XAML:
<MenuItem ...Clicked="ButtonClicked" CommandParameter="{Binding .}" />
码:
private void ButtonClicked(object sender, EventArgs args)
{
var yourVar = (YourType)((MenuItem)sender).CommandParameter;
...
}