[BUG] [ObservableProperty] OnChanged Callback Not Firing with TwoWay Binding
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 38/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- csharp
- 領域
- frontend, mobile-dev
調査の方向性
まず、リンクされた ObservablePropertyIssue サンプルを実行し、Picker の選択フローを再現します。Microsoft.Maui.Controls.Picker.IsOpen から IsProjectPickerExpanded への TwoWay バインディングを追跡し、OnIsProjectPickerExpandedChanged が呼び出されない理由を調査します。完了条件は、Picker の変更後にコールバックが実行され、説明どおりに SelectionText が更新されることです。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- C#
- スター
- 3.8k
- フォーク
- 401
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
CommunityToolkit/dotnet のほかの issue
-
RelayCommand<T>.CanExecute(null) returns false for value types without a predicate対応中かも @apachezy が 75 日前に担当しました。 オープンbug :bug:
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
CommunityToolkit/dotnet#1206 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
CommunityToolkit/dotnet#1186 ·
-
bug :bug:
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
CommunityToolkit/dotnet#648 ·
-
bug :bug:
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
CommunityToolkit/dotnet#1215 ·
-
Add segmented buffering and sequence reads to `ArrayPoolBufferWriter<T>`対応中かも @paulomorgado が 13 日前に担当しました。 オープンfeature request :mailbox_with_mail:
難易度 5/5 1週間以上 初心者へのやさしさ 45/100
CommunityToolkit/dotnet#1214 ·
CommunityToolkit/dotnet の issue をすべて見る
似ている issue
-
type/automation type/tech-debt
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
area-integrations
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
:watch: Not Triaged dotnet-framework/svc install-deployment/subsvc
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
[Tool] DirectBenchオープンhas-image has-readme needs-attention new-tool repo-verified
難易度 1/5 1〜3時間 初心者へのやさしさ 62/100
shanselman/TinyToolTown#844 · コメント 2 件 ·
メンテナーはふだん 3 日以内に返信
-
:watch: Not Triaged Pri3
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信