Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将值从listboxitem转换为字符串_C#_Wpf_Xaml_Listbox_Contextmenu - Fatal编程技术网

C# 将值从listboxitem转换为字符串

C# 将值从listboxitem转换为字符串,c#,wpf,xaml,listbox,contextmenu,C#,Wpf,Xaml,Listbox,Contextmenu,我正在尝试将listbox项值显示到msg box中。我使用的click事件仅显示datarowview对象,而不是实际的字符串值 void bt_click(object sender, RoutedEventArgs e) { // MenuItem originalItem = (MenuItem)sender; // MessageBox.Show(string.Format("clicked from \"{0}\"", originalItem.Name));

我正在尝试将listbox项值显示到msg box中。我使用的click事件仅显示datarowview对象,而不是实际的字符串值

void bt_click(object sender, RoutedEventArgs e)
{
  //  MenuItem originalItem = (MenuItem)sender;
   // MessageBox.Show(string.Format("clicked from \"{0}\"", originalItem.Name)); 
    MenuItem clickedMenuItem = sender as MenuItem;
    ContextMenu contextMenu = clickedMenuItem.Parent as ContextMenu;
    DockPanel dockPanel = contextMenu.PlacementTarget as DockPanel;
    ListBoxItem listBoxItem = GetVisualParent<ListBoxItem>(dockPanel);
   MessageBox.Show(listBoxItem);
}
public static T GetVisualParent<T>(object childObject) where T : Visual
{  
    DependencyObject child = childObject as DependencyObject;    
    // iteratively traverse the visual tree  
    while ((child != null) && !(child is T))
    {        child = VisualTreeHelper.GetParent(child);  
    }  
    return child as T;
}
void bt\u单击(对象发送方,路由目标)
{
//MenuItem originalItem=(MenuItem)发送方;
//Show(string.Format(“从\“{0}\”单击,originalItem.Name));
MenuItem clickedMenuItem=发件人作为MenuItem;
ContextMenu ContextMenu=clickedMenuItem.Parent作为ContextMenu;
DockPanel DockPanel=contextMenu.PlacementTarget作为DockPanel;
ListBoxItem ListBoxItem=GetVisualParent(dockPanel);
MessageBox.Show(listBoxItem);
}
公共静态T GetVisualParent(对象子对象),其中T:Visual
{  
DependencyObject子对象=作为DependencyObject的子对象;
//迭代遍历可视化树
while((child!=null)&&&!(child是T))
{child=visualtreeheloper.GetParent(child);
}  
返回子对象作为T;
}

尝试
ListBoxItem.Content
属性。您必须将其转换为字符串才能在Messagebox中发布。

到目前为止,您已经问了9个问题,但没有选择任何答案。请接受一些答案。@user644194-您可以通过单击复选框大纲来接受答案,而不是通过投票来接受答案。您需要按勾号图标来接受答案。@user644194-它仍然提供数据行视图