問題タブ [propertychanged]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - プロパティが変更されたMVVMの2つの値の結果を計算します
MVVMで次の簡単な式で「NetAmount」を計算しようとしています
GrossAmount+Carriage-割引=NetAmount
私はMVVMLightToolkitを使用しており、次のようにプロパティを宣言しています
これらのプロパティをXAMLで次のようなテキストボックスにバインドします。
NetAmount
そして、次のようにテキストブロックをプロパティにバインドします。
ViewModelはSalesOrderViewModel
です。
NetAmount
テキストボックスの値のいずれかが変更されたときにプロパティが変更されるように、上記の式をどこに配置すればよいかわかりません。
私はC#に不慣れではありませんが、MVVMとPropertyChanged
イベントに不慣れです。私が間違っている非常に小さな愚かなことがいくつかあることを知っていますが、頭を悩ませることはできません。
どんな助けでも大歓迎です。
silverlight - Silverlight4でUpdateSourceTrigger=PropertyChangedはいつから使用されますか?
私はSilverlight4で開発しており、やがてバインディングのUpdateSourceTriggerプロパティにデフォルトと明示の2つの選択肢があることに慣れました。しかし、今日、私は「PropertyChanged」を選択することもできることを知りました。これは非常に歓迎されていますが...予期しないことです。プロジェクトのプロパティで「Silverlight4」を引き続き表示できますが、どういうわけか、Silverlight 5の機能を正常に使用できるようになります...これについて誰かが説明していますか?
wpf - WPFValidationRulesはPropertyChangedを無効にします
ビューモデルでプロパティが変更された次のテキストボックスがあります。Binding.ValidationRulesを挿入し、間違った値を挿入すると、propertychangedイベントがトリガーされず、その理由がわかりません。何か助けはありますか?
mvvm - RaisePropertyChanged で何ができますか?
Windows Phone Silverlight アプリケーションで MVVM Light を使用しています。
RaisePropertyChanged がどのように機能するかはよくわかりません。このようなコードで説明しましょう
RaisePropertyChanged("SelectedRecipe") が呼び出されるとどうなりますか?
コードを実行するための新しいメソッドへの呼び出しなどを期待していますが、見つけた(いくつかの)例で同様のものを見つけることができません。それで、それはどのように機能しますか?
c# - ObservableCollection内のアイテムで特定のフィールドが変更されるたびに通知を受ける方法は?
Status
an のプロパティEvent
が変更されたとします。OnPropertyChanged("Status")
呼ばれますよね?
しかし、この変更についてもそのコレクションactivities
に通知したいと思います。Event
何か方法はありますか??
再開しようとしています: このシナリオは上記で説明されています。あるイベントの変化を想像してみてください。このイベントの親アクティビティを内部に持つコレクション アクティビティに、この変更について通知する必要があります。そのため、インターフェイスのどこかに表示されたイベントを更新するメソッドを呼び出すことができます。このインターフェイスには、アクティビティ コレクションが表示されます。
このため、コレクションにも通知する必要があります。
c# - Reflection を使用してプロパティが変更されたときにイベントを発生させる
私はC#で作業しており、Reflection
(いくつかの個人的な理由で)使用してのみアクセスできるオブジェクトがあります。そのため、プロパティの 1 つに値を設定する必要がある場合は、次のようにします。
そして、その値を取得するには、メソッドを使用しますGetValue
。
私の質問は:プロパティがリフレクションを使用して変更されたときにイベントを発生させる方法はありますか?
c# - バインドされたアニメーションが複数回再生される
私は MVVM を使用していますが、アニメーションをトリガーするボタンが必要な状況になりました。だから私はそれに EventTrigger を設定し、このアニメーションを実行します:
問題は、そのアニメーションを複数回再生したくないことです。したがって、最初のボタンを押した後は 0 から 150 になり、その後のすべてのクリックでは表示されないため、150 から 150 になるはず
です。ViewModel には、0 に設定されたプロパティ TooltipPosition があります。コマンドを作成しましたこのプロパティを 150 に設定して呼び出すボタンの場合。
問題は、このプロパティが 2 回目のクリック後に変更されるため、このアニメーションが 2 回再生されることです。
どうすれば修正できますか?
-編集-
ええ、申し訳ありませんが、すべての情報を含めませんでした。そのうちの 1 つだけが表示されるように、多くのオブジェクトをアニメーション化しようとしています。したがって、ユーザーが GUI でオブジェクトの選択を変更すると、アニメーションは 0 から 150 に再び開始する必要があります。そして明らかに、要素 A がアニメーション化され、次に B、そして再び A がアニメーション化された場合、このアニメーションは表示されません。
-編集2-
TextBlock の Width をアニメーション化します。問題は、複数の (バインディング データ) TextBlocks があり、いつでも 1 つだけ、または 1 つも表示されないようにすることです。したがって、すべての TextBlock の Width プロパティをバインドし、アニメーション化するので、基本的にすべてがこのアニメーションの影響を受けます。しかし、そのうちの 1 つしか表示されない可能性があるため、うまく機能します。
c# - DataContextを設定した後のPropertyChangedイベントnull
ビューのコンストラクターにあるビューのDataContextを、標準的なものであるViewModelのインスタンスに設定しています。その後まもなく、私のViewModelが正しくキャッチしたイベントアグリゲーターからUPDATE_RECENT_DOCUMENTS_LISTイベントが発生します。プロパティが変更され、onPropertyChangedメソッドが呼び出されますが、PropertyChangedイベントがnullであるため、失敗します。
次に行うのは、 CREATE_PROJECTイベントを発生させるUIへのアクションであり、同じViewModelがイベントを受信します。ただし、PropertyChangedイベントはnullではなくなり、すべてが期待どおりに機能します。
DataContextを設定してからPropertyChangedイベントに登録するまでに経過する必要のある特定の時間はありますか?PropertyChangedイベントがnullにならないようにするために待機できるイベントはありますか?
また、Prismを統合し、非常に便利なEventAggregatorを使用した直後に、標準の.NETイベントを使用してこの問題に遭遇することはありませんでした。
簡潔にするためにViewXAMLを省略して、ViewとViewModelの背後にあるコードを示しています。
ToolBarView.xaml.cs:
ToolBarViewModel.cs
}
c# - PropertyChanged イベント ハンドラーを ObservableCollection 所有者に割り当てる方法
ObservableCollection の所有者内で、ObservableCollection 内の項目の PropertyChanged イベントを処理する必要があります。以下よりもエレガントな方法が必要です。
MyViewModelPropertyChanged イベント ハンドラーを LoadMyViewModels に渡したいので、コレクションを 2 回 (読み込み時とイベント割り当て時に 1 回) トラバースする必要はありません。
MyViewModelPropertyChanged は、UI に反映される含まれているビューのプロパティを設定します (コレクションは TreeView にバインドされており、アイテムがチェックされているかどうかに基づいて UI のフィールドを有効/無効にする必要があります)。
引用された投稿のすべてではないにしても、ほとんど見てきましたが、少し迷っています。
上記のコードは必要なことを実行しますが、もっと良い方法があることはわかっています。適切なリファレンスまたはコード サンプルを引用してください。
ありがとう。