diff --git a/src/Avalonia.Base/Input/DataTransferItem.cs b/src/Avalonia.Base/Input/DataTransferItem.cs index 1a54d5dab8..8a5a1cec5f 100644 --- a/src/Avalonia.Base/Input/DataTransferItem.cs +++ b/src/Avalonia.Base/Input/DataTransferItem.cs @@ -61,7 +61,7 @@ public sealed class DataTransferItem : IDataTransferItem, IAsyncDataTransferItem if (_accessorByFormat is not null) return _accessorByFormat.TryGetValue(format, out var accessor) ? accessor : null; - if (_singleItem is { } singleItem) + if (_singleItem is { } singleItem && singleItem.Key.Equals(format)) return singleItem.Value; return null; diff --git a/tests/Avalonia.Base.UnitTests/Input/DataFormatTests.cs b/tests/Avalonia.Base.UnitTests/Input/DataFormatTests.cs index e4eb52ecfc..5fde67f5a1 100644 --- a/tests/Avalonia.Base.UnitTests/Input/DataFormatTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/DataFormatTests.cs @@ -79,6 +79,16 @@ public sealed class DataFormatTests Assert.NotEqual(inProcess, application); } + [Fact] + public void TryGetRaw_With_Mismatched_Format_Returns_Null_For_Single_Format_Item() + { + var item = DataTransferItem.CreateText("hello"); + + var result = item.TryGetRaw(DataFormat.Bitmap); + + Assert.Null(result); + } + [Fact] public void InProcess_Format_Works_With_DataTransferItem_Set_And_Get() {