Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Allow ObservableObject/INotifyPropertyChanged generator to work with interface specified

Aperta
#1,107 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
csharp
Ambito
tooling

Direzione di ricerca

Riproduci il caso WinUI usando [ObservableObject] o [INotifyPropertyChanged] con un'interfaccia dichiarata esplicitamente e osserva gli avvisi MVVMTK0049/0050. Inizia tracciando il modo in cui il generatore gestisce le interfacce dichiarate dall'utente, quindi verifica che l'implementazione generata rimanga disponibile e che gli avvisi AOT siano risolti, inclusa la soluzione alternativa per l'ereditarietà di tipi astratti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Currently, using [ObservableObject]/[INotifyPropertyChanged] generator in WinUI project causes warning MVVMTK0049/0050, since WinRT source generator can't see the implemented interface in MVVMTK source generator.

A workaround for this can be explicitly specify the interfaces in user written part, then they are visible to WInRT source generator:

[INotifyPropertyChanged]
public abstract partial class MyControlBase : UserControl, INotifyPropertyChanged
{
}

However, when the MVVMTK generator sees the interface specification, it will think the interface is implemented by user and remove its generation. If we can force it to provide its generation, then the AOT warning should be addressed.


I also find a workaround by introducing another level of inheritance:

[INotifyPropertyChanged]
public abstract partial class ObservableUserControl : UserControl
{
}

public partial class MyControl : ObservableUserControl, INotifyPropertyChanged

Then WinRT source generator will correctly see interfaces on MyControl, only ObservableUserControl is missing the interface info. Is it safe to ignore the warnings for abstract types?

Lingua principale
C#
Stelle
3.8k
Fork
401
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di CommunityToolkit/dotnet

Tutte le issue di CommunityToolkit/dotnet

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.