我不知道如何开始这样做。获取网格中显示方法的结果
我有一个网格,我已经填充了一些数据并以表格格式显示。我可以点击每个单独的单元格,它将指示哪个单元格及其值。
但是我需要这些值和我点击的单元格显示在网格的另一部分。我如何去做这件事?不知道如何做绑定,虽然我的点击会触发一个事件,我不知道我怎么能实际上将数据从事件代码推送到网格。
在此先感谢!
我不知道如何开始这样做。获取网格中显示方法的结果
我有一个网格,我已经填充了一些数据并以表格格式显示。我可以点击每个单独的单元格,它将指示哪个单元格及其值。
但是我需要这些值和我点击的单元格显示在网格的另一部分。我如何去做这件事?不知道如何做绑定,虽然我的点击会触发一个事件,我不知道我怎么能实际上将数据从事件代码推送到网格。
在此先感谢!
您可以使用DataGrid的SelectedItems绑定来解决您的问题。只需检查下面的代码。
[更新]乍一看,作为SelectedItems类型是IList的,似乎没有实现INotifyCollectionChanged,但SelectedItems的实际对象类型为internal class SelectedItemCollection : ObservableCollection<object>
。 [/更新]
XAML
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<DataGrid Name="DS1" ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
</DataGrid.Columns>
</DataGrid>
<DataGrid Grid.Row="1"
ItemsSource="{Binding ElementName=DS1, Path=SelectedItems}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
代码隐藏
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<Customer> customers = new List<Customer>();
for (int i = 0; i < 10; i++)
{
customers.Add(new Customer {FirstName = "name" + i, LastName = "last" + i});
}
DataContext = customers;
}
}
//Defines the customer object
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
不错,这是一个简短的解决方案。我以前看过这个例子,但从未想过它。谢谢! – edelweiss
你的意思是 '选择' 来选择单个细胞?或行?不像MS Excel,WPF DataGrid基本上不支持选择每个单独的单元格,而是行。以下我的答案是关于选择行。 –