我有一个WPF与列表视图充满了来自数据库的名称。在列表视图(gridview)是3 coloumns(名称,年龄,年级)。我想要做的是当我在列表视图上选择一个人时,我想让他们的信息显示在文本框中。我不确定它是否更好地通过代码或XAML来完成,但我无法弄清楚。任何帮助表示赞赏。试图在文本框上显示在列表视图什么WPF
继承人我有:
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>
感谢您的回复。我明白你的意思,但我从来没有做过任何这样的事情,所以老实说,我不知道如何设置绑定和设置它。我看例子,他们只会说文本=“{绑定名称}”更多的它,但我不知道什么 – TMan
我会开始阅读关于数据绑定的MSDN文档 - http://msdn.microsoft.com /en-us/library/ms750612.aspx。然后,当你对此有所了解的时候,你可以在我所包含的链接上阅读MVVM设计。在MVVM中,视图的DataContext(即您的XAML UserControl或Window)将是您的视图模型的一个实例,因此当您有绑定语句时{绑定名称}通常绑定到视图模型的公共属性。一旦你了解了MVVM,我会考虑使用MVVM框架来简化开发。 – devdigital