C# 从ListView获取值

C# 从ListView获取值,c#,wpf,xaml,data-binding,C#,Wpf,Xaml,Data Binding,使用下面的XAML,如何根据listview当前选定的项检索嵌套在stackpanel中的let’s say或任何其他控件的值?在C中 XAML 我不完全理解,但我想你的意思是用户可以在列表框中选择一个文本块,你想取这个文本块的值。如果是这样,您可以简单地执行以下操作: string sel = Listview1.SelectedItem.Text; string value = null; foreach ( con in Stackpanel.Controls) { if

使用下面的XAML,如何根据listview当前选定的项检索嵌套在stackpanel中的let’s say或任何其他控件的值?在C中

XAML
我不完全理解,但我想你的意思是用户可以在列表框中选择一个文本块,你想取这个文本块的值。如果是这样,您可以简单地执行以下操作:

    string sel = Listview1.SelectedItem.Text;
string value = null;
foreach ( con in Stackpanel.Controls) {
    if ((con) is Textblock) {
        if (con.Name == sel) {
            value = ((con)Textblock).Text;
            break; 
        }
    }
}

如果您使用的是MVVM方法,那么ListView的ItemsSource将绑定到ViewModel上的属性。要从列表框的SelectedItem访问值,请将SelectedItem绑定到视图模型上的另一个成员。比如:

代码:

    string sel = Listview1.SelectedItem.Text;
string value = null;
foreach ( con in Stackpanel.Controls) {
    if ((con) is Textblock) {
        if (con.Name == sel) {
            value = ((con)Textblock).Text;
            break; 
        }
    }
}
public class ViewModel
{
    public ObservableCollection<MyListViewItem> Items {get;set;}
    public MyListViewItem SelectedListItem {get;set;}
}
<ListView DataContext="{Binding Path=myViewModel}" 
     ItemsSource="{Binding Path=Items}"
     SelectedItem="{Binding Path=SelectedListItem}" />
<TextBlock Text="{Binding ElementName=ItemListView, Path=SelectedItem.SenderName}"/>