【发布时间】:2011-10-09 21:27:49
【问题描述】:
我有一个带有列表视图的 WPF,其中填充了来自数据库的名称。在 listview(gridview) 上有 3 个列(姓名、年龄、等级)。我想要做的是当我在列表视图上选择一个人时,我希望他们的信息显示在文本框中。我不确定通过代码或 XAML 是否更好,但我无法弄清楚。任何帮助表示赞赏。
这是我所拥有的:
namespace Camp_
{
/// <summary>
/// Interaction logic for CampersPage.xaml
/// </summary>
public partial class CampersPage : Page
{
MainWindow _parentForm;
public CampersPage(MainWindow parent)
{
_parentForm = parent;
InitializeComponent();
for (int i = 0; i < _parentForm.allCampers.Count; i++)
{
listViewCampers.Items.Add(new { Name = "" + _parentForm.allCampers[i].getName(), Age = "" + _parentForm.allCampers[i].getAge(), Grade = "" + _parentForm.allCampers[i].getGrade() });
}
}
private void listViewCampers_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
for (int i = 0; i < _parentForm.allCampers.Count; i++)
{
// txtName.Text = listViewCampers.SelectedItem.Col1.toString();
txtName.Text = "" + _parentForm.allCampers[i].getName();
txtAge.Text = "" + _parentForm.allCampers[i].getAge();
txtGrade.Text = "" + _parentForm.allCampers[i].getGrade();
}
}
}
}
// _parentForm.ListToText();
// for (int i = 0; i < _parentForm.testClass.g1.members.Count; i++)
/*
{
if (listViewCampers.SelectedItem == _parentForm.testClass.g1.members[i].getName())
{
txtName.Text = _parentForm.testClass.g1.members[i].getName();
txtAge.Text = "" + _parentForm.testClass.g1.members[i].getAge();
txtGrade.Text = "" + _parentForm.testClass.g1.members[i].getGrade();
txtRequest1.Text = "None";
txtRequest2.Text = "None";
txtRequest3.Text = "None";
Camper[] x = _parentForm.testClass.g1.members[i].getRequests();
if (x[0] != null && x[1] != null && x[2] != null)
{
txtRequest1.Text = "" + x[0].getName();
txtRequest2.Text = "" + x[1].getName();
txtRequest3.Text = "" + x[2].getName();
} } }
*/
//txtName.Text = listViewCampers.SelectedItem.Col1.toString();
//txtAge.Text = "" + _parentForm.allCampers[i].getAge();
//txtGrade.Text = "" + _parentForm.allCampers[i].getGrade();
这是 XAML:
<Page x:Class="Camp_.CampersPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="570"
Title="Campers Page" ShowsNavigationUI="False" xmlns:my="clr-namespace:Camp_" >
<Grid Name="camperGrid">
<Grid.Background>
<RadialGradientBrush>
<GradientStop Color="#FFC3D6F5" Offset="0" />
<GradientStop Color="#FFEFF5FF" Offset="1" />
</RadialGradientBrush>
</Grid.Background>
<ListView HorizontalAlignment="Left" Margin="10,10,0,40" Name="listViewCampers" Width="200" SelectionChanged="listViewCampers_SelectionChanged">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="100" />
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}" Width="40" />
<GridViewColumn Header="Grade" DisplayMemberBinding="{Binding Grade}" Width="40" />
</GridView>
</ListView.View>
</ListView>
<Grid Height="Auto" HorizontalAlignment="Stretch" Margin="209,12,0,0" Name="infoGrid" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="134*" />
<RowDefinition Height="154*" />
</Grid.RowDefinitions>
<Label Content="Name" Height="28" HorizontalAlignment="Left" Margin="23,24,0,0" Name="lblName" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="23,46,0,0" Name="txtName" VerticalAlignment="Top" Width="120" AcceptsReturn="True" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="23,103,0,0" Name="txtAge" VerticalAlignment="Top" Width="120" />
<Label Content="Age" Height="28" HorizontalAlignment="Left" Margin="23,75,0,0" Name="lblAge" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="23,27,0,0" Name="txtGrade" VerticalAlignment="Top" Width="120" Grid.Row="1" />
<Label Content="Grade" Height="28" HorizontalAlignment="Left" Margin="23,0,0,0" Name="lblGrade" VerticalAlignment="Top" Grid.Row="1" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="180,46,0,0" Name="txtRequest1" VerticalAlignment="Top" Width="120" />
<Label Content="Roommate Request #1" Height="28" HorizontalAlignment="Left" Margin="180,24,0,0" Name="lblRequest" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="180,103,0,0" Name="txtRequest2" VerticalAlignment="Top" Width="120" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="180,27,0,0" Name="txtRequest3" VerticalAlignment="Top" Width="120" Grid.Row="1" />
<Label Content="Roommate Request #2" Height="28" HorizontalAlignment="Left" Margin="180,75,0,0" Name="label1" VerticalAlignment="Top" />
<Label Content="Roommate Request #3" Height="28" HorizontalAlignment="Left" Margin="180,0,0,0" Name="label2" VerticalAlignment="Top" Grid.Row="1" />
</Grid>
</Grid>
【问题讨论】:
标签: c# .net wpf visual-studio listview