[英]C# WPF DataGrid | Only one Row without Content
我對 Datagrid 進行了一些嘗試,在第一個程序中我創建了一個 DataGrid,它工作得很好,但后來我嘗試了另一個項目,重做它並在沒有指南的情況下學習它。
我不知道其他項目有什么不同,但這次它只顯示 1 行,在點擊添加后,沒有內容。
我做錯了什么,是否有一般改進?
感謝您在此線程中使用您的時間。
public List<User> UserList = new List<User>();
public MainWindow()
{
InitializeComponent();
}
private void PressedEnter(object sender, KeyEventArgs e)
{
TextBox CurrentTextbox = (TextBox)sender;
if (e.Key == Key.Enter)
{
switch (CurrentTextbox.Name)
{
case "EnterName":
EnterBirthday.Focus();
break;
case "EnterBirthday":
EnterEmail.Focus();
break;
case "EnterEmail":
MainDataGrid.ItemsSource = null;
MainDataGrid.ItemsSource = UserList;
break;
}
}
}
private void AddButton_OnClick(object sender, MouseButtonEventArgs e)
{
MainDataGrid.ItemsSource = null;
MainDataGrid.ItemsSource = UserList;
}
private List<User> AddItemToGrid()
{
string[] NameArray = EnterName.Text.Split(' ');
string[] BirthdayArray = EnterBirthday.Text.Split('.');
UserList.Add(new User()
{
FirstName = NameArray[0],
LastName = NameArray[1],
Birthday = new DateTime(Convert.ToInt16(BirthdayArray[2]), Convert.ToInt16(BirthdayArray[1]), Convert.ToInt16(BirthdayArray[0])),
Email = EnterEmail.Text
});
return UserList;
}
public class User
{
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
public DateTime Birthday
{
get;
set;
}
public string Email
{
get;
set;
}
}
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="287*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="235" />
<ColumnDefinition Width="337*" />
</Grid.ColumnDefinitions>
<Label Grid.ColumnSpan="2"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Background="#2196f3"
BorderBrush="Transparent"
Content="DataGrid"
FontFamily="Roboto"
FontSize="15"
FontWeight="Bold"
Foreground="White" />
<StackPanel Grid.Row="1" Grid.Column="0">
<Label Height="25"
Margin="10,10,10,0"
VerticalAlignment="Top"
HorizontalContentAlignment="Center"
Background="#2196f3"
BorderBrush="Transparent"
Content="Name"
FontFamily="Roboto"
FontSize="13"
FontWeight="Bold"
Foreground="White" />
<TextBox Name="EnterName"
Height="25"
Margin="10,5,10,0"
VerticalAlignment="Top"
HorizontalContentAlignment="Left"
VerticalContentAlignment="Center"
BorderBrush="#2196f3"
FontFamily="Roboto"
Foreground="#2196f3"
KeyDown="PressedEnter" />
<Label Height="25"
Margin="10,10,10,0"
VerticalAlignment="Top"
HorizontalContentAlignment="Center"
Background="#2196f3"
BorderBrush="Transparent"
Content="Birthday (DD.MM.YYYY)"
FontFamily="Roboto"
FontSize="13"
FontWeight="Bold"
Foreground="White" />
<TextBox Name="EnterBirthday"
Height="25"
Margin="10,5,10,0"
VerticalAlignment="Top"
HorizontalContentAlignment="Left"
VerticalContentAlignment="Center"
BorderBrush="#2196f3"
FontFamily="Roboto"
Foreground="#2196f3"
KeyDown="PressedEnter"
MaxLength="10" />
<Label Height="25"
Margin="10,10,10,0"
VerticalAlignment="Top"
HorizontalContentAlignment="Center"
Background="#2196f3"
BorderBrush="Transparent"
Content="E-Mail"
FontFamily="Roboto"
FontSize="13"
FontWeight="Bold"
Foreground="White" />
<TextBox Name="EnterEmail"
Height="25"
Margin="10,5,10,0"
VerticalAlignment="Top"
HorizontalContentAlignment="Left"
VerticalContentAlignment="Center"
BorderBrush="#2196f3"
FontFamily="Roboto"
Foreground="#2196f3"
KeyDown="PressedEnter" />
<Label Name="AddButton"
Height="68"
Margin="10,10,10,10"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Background="#2196f3"
BorderBrush="#2196f3"
Content="ADD"
FontFamily="Roboto"
FontSize="30"
FontWeight="Bold"
Foreground="White"
MouseLeftButtonDown="AddButton_OnClick" />
</StackPanel>
<DataGrid Name="MainDataGrid"
Grid.Row="1"
Grid.Column="1" />
</Grid>
您忘記設置UserList
:
private void AddButton_OnClick(object sender, MouseButtonEventArgs e)
{
MainDataGrid.ItemsSource = null;
UserList = AddItemToGrid();
MainDataGrid.ItemsSource = UserList;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.