我有一個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