【发布时间】:2017-05-13 14:11:42
【问题描述】:
我在将 DataGrid 项(可能是可编辑的)与 ListBox 项绑定时遇到问题。 我已将该项目添加到 DataGrid(在 cs 代码中),并且该项目未显示在 ListBox 项目中。
这里是 xaml 代码:
<Window x:Class="_303_slawinskam_5B.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:_303_slawinskam_5B"
mc:Ignorable="d"
Title="Movies manager" Height="600" Width="800" MinHeight="400" MinWidth="600" Loaded="Window_Loaded">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.Background>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="#007c04" Offset="0.0" />
<GradientStop Color="#b2ffb4" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
<Menu Grid.ColumnSpan="2" HorizontalAlignment="Left" Height="25" Margin="0,0,0,0" VerticalAlignment="Top" Width="792">
<MenuItem Header="Menu" Width="55" Height="25">
<MenuItem Header="Help" Click="Help_Click"/>
<MenuItem Header="Add movies" Click="Add_Click" />
<MenuItem Header="Exit" Click="Exit_Click" />
</MenuItem>
</Menu>
<TabControl Margin="10,10,0,10" Background="Transparent" Grid.RowSpan="2">
<TabItem Header="View" Margin="716,39,-735,-47">
<ListBox Margin="0,0,67,0" Background="Transparent" ItemsSource="{Binding ElementName=dataGridMovies}" IsSynchronizedWithCurrentItem="True">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="Title: {Binding Title}"></TextBlock>
<TextBlock Text="Director: {Binding Director}"></TextBlock>
<TextBlock Text="Score: {Binding Score}"></TextBlock>
<TextBlock Text="Type: {Binding Type}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</TabItem>
<TabItem Header="Edit" Margin="679,72,-703,-81">
<DataGrid Margin="0,6,68,0" Background="Transparent" x:Name="dataGridMovies">
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Title}"/>
<DataGridTextColumn Header="Director" Binding="{Binding Director}"/>
<DataGridTextColumn Header="Score" Binding="{Binding Score}"/>
<DataGridTextColumn Header="Type" Binding="{Binding Type}"/>
</DataGrid.Columns>
</DataGrid>
</TabItem>
</TabControl>
</Grid>
这里是cs代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace _303_slawinskam_5B
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
}
private void Help_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("You won't find any help here");
}
private void Add_Click(object sender, RoutedEventArgs e)
{
}
private void Exit_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
public class Movies
{
public string Title { get; set; }
public string Director { get; set; }
public string Score { get; set; }
public string Type { get; set; }
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
List<Movies> ml = new List<Movies>();
dataGridMovies.DataContext = ml;
Movies check = new Movies() { Title = "title", Director = "director", Score = "score", Type = "type" };
dataGridMovies.Items.Add(check);
}
}
}
请告诉我我必须更改什么,以便将添加到 DataGrid 的项目也添加到 ListBox 中。 谢谢。
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: c# wpf xaml datagrid listbox