C# 在列表视图中显示所选数据

C# 在列表视图中显示所选数据,c#,wpf,C#,Wpf,我有两个窗口,一个有访客列表,另一个显示它。如果我选择一个访客(例如SUNDAR)并显示在另一个页面上,如何显示回去 Xaml访问者 我已经为访问者建立了数据库连接 首先需要定义一个类访问者,该类包含访问者(名称、访问者编号…)的结构,然后定义一个可观察集合,该集合包含访问者列表并将列表绑定到该集合,不要忘记设置数据上下文。 每次按下按钮时,您都会将Dalog的DataContext设置为所选访问者,下面是完整的代码: 第一个:用于主窗口 Xaml 所选访问者将使用其构造函数传递到对话框。您所说

我有两个窗口,一个有访客列表,另一个显示它。如果我选择一个访客(例如SUNDAR)并显示在另一个页面上,如何显示回去

Xaml访问者

我已经为访问者建立了数据库连接

首先需要定义一个
访问者
,该类包含
访问者
(名称、访问者编号…)的结构,然后定义一个
可观察集合
,该集合包含访问者列表并将列表绑定到该集合,不要忘记设置
数据上下文
。 每次按下按钮时,您都会将Dalog的
DataContext
设置为所选访问者,下面是完整的代码:

第一个:用于主窗口 Xaml


所选访问者将使用其构造函数传递到对话框。

您所说的“显示回”是什么意思?!如果您想将访问者数据传递到第二个(详细信息)窗口,您可以轻松地传递对此窗口的引用,并将其拾取以用于数据绑定到用户控件…或者传递访问者ID,从数据库检索信息并将其绑定到用户控件。假设我拾取访问者名称Sundar,然后单击按钮查看访问者,之后,它打开新窗口,从访问者页面携带访问者姓名Sundar,并显示在我在视图列表中提供的文本框上。这个线程是否与这个问题相关?我使用两个窗口页面,访问者和视图列表,我想将所选数据从访问者传递到第二个窗口,视图列表
<ListView x:Name="listVisitor"  ItemsSource="{Binding}" HorizontalAlignment="Left" Height="582" Margin="110,65,0,0" VerticalAlignment="Top" Width="924" Grid.ColumnSpan="3" />

<Button Content="View Visitor"  Foreground="white" HorizontalAlignment="Left" Margin="98,674,0,0" VerticalAlignment="Top" Width="320" Height="30" Background="#FF1CA0B7" Grid.ColumnSpan="2" Name="ViewBtn" Click="ViewBtn_Click" />
private void ViewBtn_Click(object sender, RoutedEventArgs e)
{
    ViewList dialogBox = new ViewList();`

    // Show window modally 
    // NOTE: Returns only when window is closed
    Nullable<bool> dialogResult = dialogBox.ShowDialog();

}
 <TextBox  Name="VisitorNo"/>
 <TextBox Name="Name"/>
private void VisitorNo_TextChanged(object sender, TextChangedEventArgs e)       
{

}

private void Name_TextChanged(object sender, TextChangedEventArgs e)
{

}
 <StackPanel>
    <ListView x:Name="listVisitor"  ItemsSource="{Binding ListVisitors}" DisplayMemberPath="Name"  />
    <Button Content="View Visitor"    Click="ViewBtn_Click" />
</StackPanel>
public class Visitor
{
    public String Name { get; set; }        
    public int VisitorNo { get; set; }
}

public partial class MainWindow : Window
{
    public ObservableCollection<Visitor> ListVisitors { get; set; }
    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = this;
        ListVisitors=new ObservableCollection<Visitor>()
        {
            new Visitor()
            {
                Name = "name1",                    
                VisitorNo=21
            },
             new Visitor()
            {
                Name = "name2",                    
                VisitorNo=21
            },
             new Visitor()
            {
                Name = "name3",                    
                VisitorNo=21
            }
        };

    }

    private void ViewBtn_Click(object sender, RoutedEventArgs e)
    {
        if (listVisitor.SelectedItem!=null)
        {
            var dialogBox = new Viewlist((Visitor)listVisitor.SelectedItem);
            var dialogResult = dialogBox.ShowDialog();
        }


    }
}
    <StackPanel>

    <TextBox  Text="{Binding VisitorDataContext.Name,Mode=TwoWay}"/>
    <TextBox  Text="{Binding VisitorDataContext.VisitorNo,Mode=TwoWay}"/>
    <Button Content="Close" Click="ButtonBase_OnClick"></Button>
</StackPanel>
public partial class Viewlist : Window
{
    public Visitor VisitorDataContext { get; set; }    
    public Viewlist(Visitor visitor)
    {
        InitializeComponent();
        this.DataContext = this;
        VisitorDataContext = visitor;
    }

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        this.Close();
    }
}