Tag: datagrid

WPF C#获取DataGrid列的总和

我需要在每次触发事件(可能是CelLEditEnding)时将DataGrid中的所有值相加并将其显示在标签中。 我有以下代码: private void tblData_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { double sum = 0; //System.Windows.MessageBox.Show(tblData.SelectedItems.Count.ToString()); for (int i = 0; i < tblData.SelectedItems.Count; i++) { TextBlock tb = tblData.Columns[3].GetCellContent(tblData.SelectedItems[i]) as TextBlock; double test = Convert.ToDouble(tb.Text); sum = sum + test; lblTotal.Content = "$ " + sum.ToString(); //System.Windows.MessageBox.Show(sum.ToString()); 问题是只有一行受到影响,实际得到总结并显示在标签中的一行是随机的。 正如您所看到的,我添加了一个消息框来向我显示DataGrid中的总行数,每次结果为1。 我不知道如何解决这个问题,我非常喜欢编程,并且在技术术语方面存在问题。 任何帮助是极大的赞赏。

DataGridComboBoxColumn绑定到List

我有一个包含数据网格的WPF应用程序。 datagrid绑定到我的对象OrderBlock,它包含一个类型为Order的List。 <DataGrid DataContext="{Binding OrderBlock}" Name="dataGridOrdersGood" ItemsSource="{Binding Orders}" 这工作正常,并在我的数据网格中很好地显示。 我的列表中有一个属性(StatusGood)虽然我想显示为一个combobox,其中只有两个值,“发送”或“保持”。 所以我试图将combobox值绑定到List StatusList,如下所示。 然后尝试将实际值绑定到我的对象。 public class ViewModel : INotifyPropertyChanged { public List StatusList; // constructor public ViewModel() { StatusList = new List(); StatusList.Add(“Hold”); StatusList.Add(“Send”); } } 但是除了空的combobox之外没有显示任何内容。 我不明白为什么我的combobox至少没有显示我的对象的价值? 我提供了一个列表,所以我不明白为什么它没有显示任何东西。 我是WPF的新手,必须努力去理解它。 我已经引用但显然没有完全理解它。 http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridcomboboxcolumn.aspx 任何帮助都会很棒! 谢谢,M

WPF DataGrid。 更改单细胞背景

我有大约66列和4000行的数据表 每一行都有一些基于条件的着色 我是WPF的新手实际上我已经实现了一些基于条件的着色datagridview中的行但WPF作为组件DATA GRID 如何根据细胞价值实现基于细胞的着色? 在WPF中 早些时候我在Win表单中做了类似的事情 public DataGridView colorGridview(DataGridView G) { string[] cellsrequired = {“Colnames1”,””colname2}; foreach (DataGridViewRow item in G.Rows) { foreach (DataGridViewCell cell in item.Cells) { if (cellsrequired.Contains(cell.OwningColumn.HeaderText)) { string str = cell.FormattedValue.ToString().Trim(); // n / a if (str != “N/A”)// Or your condition { if (str == “SKIP”) { cell.Style.BackColor = Color.Orange; […]

如何在WPF中滚动保留DataGrid组头?

当DataGrid中填充了许多条目以便显示垂直滚动条时,我不希望DataGrid滚动查看器隐藏组头。 相反,我希望每个组都有一个ScrollBar 。 在我的情况下,总会有两(2)组,因此将有0-2个滚动条。 这是一个简约的示例代码: http : //www.wpftutorial.net/datagrid.html#grouping Customers = new ListCollectionView(_customers); Customers.GroupDescriptions.Add(new PropertyGroupDescription(“Gender”)); XAML: 即使在那个基本示例中也会出现问题。 我想我需要在某个地方使用ScrollViewer ?

当它为空时,在WPF DataGrid上显示“找不到记录”消息

我正在尝试在我的WPF Datagrid中显示“找不到记录”消息 我在这里尝试了同一问题的解决方案: 当WPF DataGrid为空时,显示“找不到记录”消息 但到目前为止,只有当我的ObservableCollection为空时,我才找到添加空行的方法。 这是我的datagrid的代码: <!—-> 触发器全部按预期工作。 但是没有显示该消息。 当我将Trigger Converter从“intIsLessThan”更改为“intIsEqualOrGreaterThan”时,将显示Message而不是实际的datagrid条目。 所以我想只缺少空的默认行。 但是如何添加一个空的默认行? 我希望有人可以帮我解决这个问题。 我现在已经找了两天才找到解决方案……

将true / false更改为图像

我在数据网格中有一个内容为True / false的列,如何根据文本将此true / false(boolean)更改为图像? 我正在使用c#wpf。 编辑:

编辑单元格后,防止重新排序数据网格

我有一个带可编辑单元格的数据网格。 我使用自动排序(按列标题)。 现在,当用户编辑相应列已应用排序的单元格时,数据网格行将在编辑完成后重新排序,这可能会非常混乱。 我想阻止此行为,以便仅在单击列标题时对数据网格进行排序。 这是我的DataGrid XAML: 在我的ViewModel中,我绑定了一个ICollectionView: public ICollectionView MyCollectionView { get; set; } MyCollectionView = CollectionViewSource.GetDefaultView(_personItemViewModels); 我已经尝试过像Sorting,RowEditEnding或CellEditEnding这样的事件来中断刷新/求助/重新过滤……但找不到任何解决方案。

WPF DataGrid实际的ColumnHeaderHeight

当我将WPF DataGrid的ColumnHeaderHeight设置为Auto(double.NaN)时,如何获得列标题的实际渲染高度? 我似乎无法在DataGrid类中找到该属性。

WPF自定义DatagridColumn绑定问题

我正在尝试为我可以在我的应用程序中重用的数据网格定义一个新的列模板,但是当我尝试使用它时,我得到: System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement。 BindingExpression:路径= CanLogin; 的DataItem = NULL; target元素是’DataGridBetterCheckBoxColumn’(HashCode = 56040243); target属性是’isChecked’(类型’对象’) XAML for Column: 代码背后: using System.Windows; using System.Windows.Controls; namespace BACSFileGenerator.UserControls { public partial class DataGridBetterCheckBoxColumn : DataGridTemplateColumn { public object isChecked { get { return (object)GetValue(isCheckedProperty); } set { SetValue(isCheckedProperty, value); } } public static readonly DependencyProperty isCheckedProperty = DependencyProperty.Register(“isChecked”, typeof(object), typeof(DataGridBetterCheckBoxColumn), new PropertyMetadata(null)); […]

此视图不允许使用WPF“EditItem”

我知道有很多关于这个错误的问题( 1,2,3,4,5等),但我找不到解释这个错误的原因并适合我的情况。 如果我错过了一个,请告诉我! 首先,我使用自定义类(不是ObservableCollection或任何其他.NET内置的可观察集合)绑定到我的DataGrid ItemsSource 。 在向您展示其代码之前,让我解释一下我是如何想到的(我的假设可能是错误的)。 在我看来,要成为可绑定的,集合必须至少实现IEnumerable和INotifyCollectionChanged 。 IEnumerable以视图获取要显示的项目(感谢GetEnumerator方法)和INotifyCollectionChanged以便视图知道集合上的更改。 所以我最终得到了这个课程: public class ObservableDictionary : IDictionary, IEnumerable, INotifyCollectionChanged { #region fields private IDictionary _innerDictionary; #endregion #region properties public int Count { get { return _innerDictionary.Count; } } public ICollection Keys { get { return _innerDictionary.Keys; } } public ICollection Values { get { return _innerDictionary.Values; […]