diff --git a/src/AtomUI.Controls.DataGrid/Cell/DataGridCellCoordinates.cs b/src/AtomUI.Controls.DataGrid/Cell/DataGridCellCoordinates.cs index 0256befc9..31b676e28 100644 --- a/src/AtomUI.Controls.DataGrid/Cell/DataGridCellCoordinates.cs +++ b/src/AtomUI.Controls.DataGrid/Cell/DataGridCellCoordinates.cs @@ -9,28 +9,21 @@ namespace AtomUI.Controls; internal class DataGridCellCoordinates { + public int ColumnIndex { get; set; } + + public int Slot { get; set; } + public DataGridCellCoordinates(int columnIndex, int slot) { ColumnIndex = columnIndex; Slot = slot; } - public DataGridCellCoordinates(DataGridCellCoordinates dataGridCellCoordinates) : this(dataGridCellCoordinates.ColumnIndex, dataGridCellCoordinates.Slot) + public DataGridCellCoordinates(DataGridCellCoordinates dataGridCellCoordinates) + : this(dataGridCellCoordinates.ColumnIndex, dataGridCellCoordinates.Slot) { } - public int ColumnIndex - { - get; - set; - } - - public int Slot - { - get; - set; - } - public override bool Equals(object? o) { if (o is DataGridCellCoordinates dataGridCellCoordinates) diff --git a/src/AtomUI.Controls.DataGrid/DataGridClipboard.cs b/src/AtomUI.Controls.DataGrid/DataGridClipboard.cs index 13ef476ab..b2e028bf5 100644 --- a/src/AtomUI.Controls.DataGrid/DataGridClipboard.cs +++ b/src/AtomUI.Controls.DataGrid/DataGridClipboard.cs @@ -31,8 +31,8 @@ public enum DataGridClipboardCopyMode public struct DataGridClipboardCellContent { private DataGridColumn _column; - private object _content; - private object _item; + private object? _content; + private object? _item; /// /// Creates a new DataGridClipboardCellValue structure containing information about a DataGrid cell. @@ -40,7 +40,7 @@ public struct DataGridClipboardCellContent /// DataGrid row item containing the cell. /// DataGridColumn containing the cell. /// DataGrid cell value. - public DataGridClipboardCellContent(object item, DataGridColumn column, object content) + public DataGridClipboardCellContent(object? item, DataGridColumn column, object? content) { _item = item; _column = column; @@ -55,12 +55,12 @@ public struct DataGridClipboardCellContent /// /// Cell content. /// - public object Content => _content; + public object? Content => _content; /// /// DataGrid row item containing the cell. /// - public object Item => _item; + public object? Item => _item; /// /// Field-by-field comparison to avoid reflection-based ValueType.Equals. @@ -82,7 +82,11 @@ public struct DataGridClipboardCellContent /// Hash value. public override int GetHashCode() { - return ((_column.GetHashCode() ^ _content.GetHashCode()) ^ _item.GetHashCode()); + var hash = new HashCode(); + hash.Add(_column); + hash.Add(_content); + hash.Add(_item); + return hash.ToHashCode(); } /// @@ -121,14 +125,14 @@ public class DataGridRowClipboardEventArgs : EventArgs private List? _clipboardRowContent; private bool _isColumnHeadersRow; - private object _item; + private object? _item; /// /// Creates a DataGridRowClipboardEventArgs object and initializes the properties. /// /// The row's associated data item. /// Whether or not this EventArgs is for the column headers. - internal DataGridRowClipboardEventArgs(object item, bool isColumnHeadersRow) + internal DataGridRowClipboardEventArgs(object? item, bool isColumnHeadersRow) { _isColumnHeadersRow = isColumnHeadersRow; _item = item; @@ -157,6 +161,6 @@ public class DataGridRowClipboardEventArgs : EventArgs /// /// DataGrid row item used for preparing the ClipboardRowContent. /// - public object Item => _item; + public object? Item => _item; } \ No newline at end of file diff --git a/src/AtomUI.Controls.DataGrid/DataGridValueConverter.cs b/src/AtomUI.Controls.DataGrid/Utils/DataGridValueConverter.cs similarity index 80% rename from src/AtomUI.Controls.DataGrid/DataGridValueConverter.cs rename to src/AtomUI.Controls.DataGrid/Utils/DataGridValueConverter.cs index 04d75d6ae..e5229aa9f 100644 --- a/src/AtomUI.Controls.DataGrid/DataGridValueConverter.cs +++ b/src/AtomUI.Controls.DataGrid/Utils/DataGridValueConverter.cs @@ -1,13 +1,7 @@ -// (c) Copyright Microsoft Corporation. -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. - using System.Globalization; -using AtomUI.Controls.Utils; using Avalonia.Data.Converters; -namespace AtomUI.Controls; +namespace AtomUI.Controls.Utils; internal class DataGridValueConverter : IValueConverter {