問題タブ [updatesourcetrigger]

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.

0 投票する
1 に答える
191 参照

c# - WPF で XamlParseException/TargetInvocationException を与える Binding.UpdateSourceTrigger

次のようにトリガーを適用しようとしています。

そして、私の XAML コードは次のとおりです。

例外の原因は何ですか?

0 投票する
1 に答える
517 参照

wpf - VisualTreeHelper.GetChild() を反復処理し、データバインディングを含むコントロールで UpdateSource を呼び出します

TextBoxes や ComboBoxes などのいくつかの入力コントロールを含む WPF に ContentControl があります。これらの各コントロールは、ViewModel の特定のプロパティにデータバインドされていUpdateSourceTrigger=Explicitます。

FormularioPaciente「送信」ボタンをクリックすると、バインディングを持つすべての子をトラバースし、次のように呼び出しUpdateSourceます。

0 投票する
2 に答える
324 参照

wpf - TextBox UpdateSourceTrigger と PropertyChanged の使用に関する問題

ゴール

btnRefreshテキストボックスに何かがあるときにボタンを有効にしたいtbMachineNo(MVVM標準を使用)。


プロジェクトの概要

私は持っています:

Window.xaml

InspectionViewModel.vb

これにはプロパティがInspectionModelあり、いくつかのメソッドが含まれています。1つは、コンストラクター中に ICommand が実行されることです(これが、CanUpdateメソッドのためにテキストボックスを無効/有効にするものです)

これは正常に機能し、コードは必要なときに実行されます。InpsectionModel を見てみましょう。

RefreshMachineNumberコマンド

InspectionModel.vb

このクラスは、 を実装する ObservableObject を継承しINotifyPropertyChangedます。したがって、理論的には、私のプロパティMachineNumberが Inspection オブジェクトMachineで変更されるたびに、UpdateSourceTrigger=PropertyChanged


問題

テキストボックスに文字が入力されたとき、またはテキストボックスが空になったときに、ボタンコントロールを有効/無効にする方法を理解していません。私のCanUpdateICommand は、現在これを制御しているものであり、コンストラクターがロードされたときに 1 回だけ実行されます。

これは理にかなっていますが、コードの背後に置かずにこの Textchanged の問題を機能させる方法がわかりません。MVVMでできるようにしたい

Textbox を別のフィールドにバインドしましたが、そのフィールドは Inspection オブジェクトの同じ属性にバインドされていました。テキストボックスに入力したときに他のフィールドが変更されているのを見ることができました...したがって、UpdateSourceTriggerは機能していますが、テキストを入力するとボタンを有効にすることができません。

0 投票する
1 に答える
602 参照

xaml - 要素 'Binding' の不明なメンバー 'UpdateSourceTrigger'

現在、Windows 8 アプリ - プロジェクトとして C++/CX と XAML を試しています。うまくいっているように見えますが、今このエラーに出くわしました: 要素 'Binding' の 'Unknown member 'error WMC0011 UpdateSourceTrigger' .

次のように、キーストロークごとにソースを更新するために、「PropertyChanged」という値を持つ TextBox で UpdateSourceTrigger を使用しようとしています。

キーストロークごとにソースを更新する方法を知っている人はいますか?

前もって感謝します!

0 投票する
0 に答える
193 参照

wpf - コンテナーを閉じるときに XAML Datagrid がバインドを更新しない

WinFormsフォーム内にデータグリッドを持つWPFユーザーコントロールがあります。データグリッドは、ItemsSource バインディングを使用してデータソースにバインドされます。すべて正常に機能するため、データが変更されると、変更がオブジェクト モデルに反映されます。

ただし、ユーザーがデータグリッドでデータを編集しているときにホスティング コンテナーの [閉じる] ボタンをクリックすると、データグリッドはバインドを更新しません。おそらく、フォーカスが失われたとは考えていないためです。フォームが閉じ、変更が失われます。

同じ問題がテキスト ボックスにも当てはまりますが、UpdateSourceTrigger=PropertyChanged を使用して、テキストが変更されるたびに基になるモデルが常に更新されるようにすることで回避できます。理想的ではありませんが、問題は回避されます。

ソースを更新するためにデータグリッドを PropertyChanged モードに切り替える方法、または基になるオブジェクトへのバインディングを介してデータグリッドに変更を強制的に保存する方法を知っている人はいますか?

これを調査しているときに、この記事が役立つことがわかりました: http://www.jerryhuang.net/post/Force-a-data-binding-to-update.aspx

ありがとう

0 投票する
1 に答える
28 参照

.net - Silverlight のすべての TextBox の UpdateSourceTrigegr の既定値を変更する

カスタム TextBox (TextBox を継承) があり、TextProperty の Binding の UpdateSourceTrigger 値を Explicit に変更したいと考えています。Silverlight には、Default、Explicit、PropertyChanged の 3 つの値しかありません。

コントロールのコード内からそれを行う一般的な方法はありますか?

0 投票する
3 に答える
1252 参照

c# - 1 つのコントロールに対する複数の UpdateSourceTriggers

単純な問題です。たとえば、この TextBox があるとします (実際のところ、これはあります)。

Text プロパティが変更されるたびに、MySourceProperty が正常に更新されます。それに加えて、TextBox がフォーカスされたときにも MySourceProperty が更新されるようにする必要があります。

1 つのコントロールに対して 2 つの UpdateSourceTriggers を持つ方法はありますか?


詳細については、MySourceProperty にバインドされたラベルを含む親ビューと、TextBox と ComboBox を含む別のビューがあります。

したがって、次のいずれかのイベントが発生したときに MySourceProperty を更新する必要があります。

  • TextBox.Text の変更
  • ComboBox.SelectedItem の変更
  • TextBox にフォーカスする
  • ComboBox にフォーカスする

最後の 2 つのイベントは明らかにここにあります。コントロールにフォーカスを与えても、その Text または SelectedItem プロパティは変更されず、MySourceProperty も更新されないためです。


編集:私が欲しいものを明確にするために、質問を太字にしました。コード ビハインドでイベント ハンドラーを使用することで問題を解決できましたが、WinForms の習慣をなくそうとしているところです。しかし、それが唯一の解決策である場合は、遠慮なく答えてください。

0 投票する
1 に答える
380 参照

wpf - ボタンがクリックされてコマンドが実行されると、Wpf 更新ソース トリガーが複数のテキスト ボックスで明示的にトリガーされます。MVVM シナリオでは

このような状況があります。オブジェクトをダブルクリックしてフォームで開き、それを変更できるブラウズがあります (舞台裏で、あるビューモデルから別のビューモデルにそのオブジェクトを渡しています)。その後、フィールドを変更できますが、テキストブロックはすぐに変更を行うため、[変更を保存] を押す前にフィールドが変更されていることがわかります。さらに悪いことに、[キャンセル] を押すと、変更がブラウズに残ります。すべてのテキストボックスを明示的に UpdateSourceTrigger にする必要があることはわかっていますが、MVVM の方法で簡単な例を見つけることができないため、保存ボタンがクリックされ、それに関連付けられたコマンドが実行されたときにのみ更新し、すべての明示的な更新を強制する必要があります。テキストボックス。どうすればそれを達成できますか?

ありがとう :)

0 投票する
0 に答える
344 参照

c# - WPF: UpdateSourceTrigger == Explicit にしても、バインディングを設定するとソース値が変更される

私は単純なものを持っていますWindow

SimpleDependencyPropertyという名前のカスタム

問題は、アプリケーションの起動時にバインディングが初めて設定されるときに、ソース ( SimpleUpdateSourceプロパティの値) が呼び出されなくても更新されMessageBox、次のメッセージが表示されることです: Simple changed from "initial" to " " .

どうすればそのような行動を取り除くことができますか?