dotnet / winforms

Windows Forms is a .NET UI framework for building Windows desktop applications.
MIT License
4.28k stars 955 forks source link

Allow internal types to be selected as object data source for binding #11408

Open myth384 opened 1 month ago

myth384 commented 1 month ago

Environment

Microsoft Visual Studio Enterprise 2022 (64-bit) - Version 17.9.6

.NET version

.NET 8

Did this work in a previous version of Visual Studio and/or previous .NET release?

Nope

Issue description

We are unable to select internal types as a DataSource for binding. Our company policy is to have all non-customer-facing public APIs set to internal and make them internally available within the company using the InternalsVisibleTo project element.

As a current workaround, we temporarily set the access modifier of the classes to public, and then revert them back to internal after selecting the type in question. However, this can become cumbersome with larger view models that have multiple layers of internal classes, where the public modifier has to cascade to every dependency.

Steps to reproduce

  1. Create a new .NET 8 WinForms project
  2. Create a internal class with a public property for data binding
  3. Add a control to the Form supporting data binding
  4. Attempt to set the DataSource (or DataContext) of the control to the internal class using the "Add and update object data sources" tool
  5. Observe an empty list

Diagnostics

No response

JeremyKuhne commented 1 month ago

@KlausLoeffelmann what is the plausibility of this?