[BUG] [ObservableProperty] OnChanged Callback Not Firing with TwoWay Binding
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- csharp
- Área
- frontend, mobile-dev
Línea de trabajo
Comienza ejecutando el ejemplo vinculado de ObservablePropertyIssue y reproduce el flujo de selección del Picker. Rastrea el enlace TwoWay desde Microsoft.Maui.Controls.Picker.IsOpen hasta IsProjectPickerExpanded e inspecciona por qué no se invoca OnIsProjectPickerExpandedChanged. Se considera completado cuando el callback se ejecuta después de que cambie el Picker y SelectionText se actualiza como se describe.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
When using [ObservableProperty] from CommunityToolkit.Mvvm 8.4 on a bool property bound TwoWay to Microsoft.Maui.Controls.Picker.IsOpen, the generated OnIsProjectPickerExpandedChanged method is never called
Regression
8.0.3
Steps to reproduce
- Run the ObservablePropertyIssue sample attached in this https://github.com/SuthiYuvaraj/Samples/tree/main/ObservablePropertyIssue repository.
- Open the Picker and select an item.
- After selecting the item, the SelectionText is not updated. The PropertyChanged notification is never raised.
<Picker Title="Select a project"
ItemsSource="{Binding Projects}"
ItemDisplayBinding="{Binding Name, x:DataType=models:Project}"
SelectedItem="{Binding SelectedProject}"
SelectedIndex="{Binding SelectedProjectIndex}"
IsOpen="{Binding IsProjectPickerExpanded, Mode=TwoWay}"/>
public partial class MainPageViewModel : ObservableObject
{
[ObservableProperty]
private bool _isProjectPickerExpanded;
[ObservableProperty]
private string _selectionText = "No project selected";
partial void OnIsProjectPickerExpandedChanged(bool value)
{
SelectionText = value
? "Picker is open..."
: SelectedProject is not null
? $"Selected: {SelectedProject.Name} – {SelectedProject.Description}"
: "No project selected";
}
// ...
}
With reference to the code snippet , OnIsProjectPickerExpandedChanged is never called.
Expected behavior
The OnIsProjectPickerExpandedChanged PropertyChanged method is expected to be invoked whenever the IsOpen property changes.
Screenshots
No response
IDE and version
VS 2022
IDE version
No response
Nuget packages
- CommunityToolkit.Common
- CommunityToolkit.Diagnostics
- CommunityToolkit.HighPerformance
- CommunityToolkit.Mvvm (aka MVVM Toolkit)
Nuget package version(s)
8.0.4
Additional context
- .NET MAUI CommunityToolkit:8.0.4
- OS: MacCatalyst Xcode 26.2
- .NET MAUI:11.0.0-preview.1.26104.11
Help us help you
Yes, I'd like to be assigned to work on this item
- Lenguaje dominante
- C#
- Estrellas
- 3.8k
- Forks
- 401
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CommunityToolkit/dotnet
-
bug :bug:
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
CommunityToolkit/dotnet#1206 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
CommunityToolkit/dotnet#1186 ·
-
bug :bug:
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
CommunityToolkit/dotnet#648 ·
-
bug :bug:
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
CommunityToolkit/dotnet#1215 ·
-
feature request :mailbox_with_mail:
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
CommunityToolkit/dotnet#1214 ·
Todos los issues de CommunityToolkit/dotnet
Issues similares
-
Money ExploitsAbiertoS: Untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
project-wayfarer/wayfarer-14#1628 ·
Los mantenedores suelen responder en 3 días
-
:watch: Not Triaged dotnet-target-version
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
copilot documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días
-
untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
dotnet/dotnet-api-docs#13124 ·
Los mantenedores suelen responder en 1 día
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día