問題タブ [multibinding]
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.
wpf - マルチバインディング。ソースに正しい値を更新する方法は?
私の問題は次のとおりです。
データセット内の 3 つのフィールドにバインドされた 3 つのテキスト ボックスがあります。TextBox_Rate、TextBox_Hours、TextBox_Salary。
私が必要としていたのは、TextBox_Rate + TextBox_Hoursを = TextBox_Salaryにすることでした。
これは、 MultibindingとConverterを使用することで実現できることがわかりました。
マルチバインディングは次のようになります。
そしてコンバーター:
クラス終了
これはすべて100%機能します。私は私が望む結果を得ています。しかし、ここでも問題が発生します...
TextBox_Rateは Dataset フィールドRateにバインドされ、TextBox_Hoursは Dataset フィールドHoursにバインドされ、元々 (マルチバインディングの前) TextBox_Salaryは Dataset フィールドSalaryにバインドされていましたが、 TextBox_Rate AND TextBox_Hoursにバインドされていません。また、Multibinding から生成された値は、ソース フィールド "Salary" にバインドされていないため、更新されません。
そのフィールドを更新するようにバインディングを設定するにはどうすればよいですか?
前もって感謝します。
wpf - MultiBindingを使用してコンテキストメニューでセパレータを非表示にする方法は?
私は wpf ツリービューでコンテキスト メニューを使用しています。問題を説明する前に、コンテキスト メニューの XAML 定義が何をしているのかを説明しましょう。
コンテキスト メニューの各メニュー項目には、コマンドの CanExecute メソッドに基づいてメニュー項目を無効または有効にするコマンドがあります。各コマンドは、CanExecute の結果に応じて、対応するメニュー項目の IsEnabled プロパティを設定します。
各メニュー項目の IsEnabled は BooleanToVisibilityConverter にバインドされ、IsEnabled bool 値を Collapse または Visible 値に変換して、メニュー項目の Visibility プロパティにバインドされます。これも正常に機能し、メニュー項目は正常に表示および非表示になっています。
さて、問題です。以下の XAML では、セパレータの上に 2 つのメニュー項目 (addCategoryMenuItem と removeCategoryMenuItem) があります。IMultiValueConverter (MultiBooleanToVisibilityConverter) のカスタム実装を介して、これら 2 つのメニュー項目の IsEnabled プロパティに MultiBinding しようとしています。これにより、2 つのメニュー項目が無効になっているときに Separator の Visibility プロパティを折りたたみに設定できるため、メニュー項目は無効です。
私の Converter(MultiBooleanToVisibilityConverter) の Convert メソッドでは、パラメーター値 (オブジェクト [] 値) の値「{DependencyProperty.UnsetValue}」を保持する配列内の 2 つの項目を取得します。これらはブール値にキャストできないため、Visibility 値を計算できません。
おそらく、MultiBinding で使用される ElementName と関係があります。要素が見つかりませんか?RelativeSource を使用してみました。つまり、祖先などを見つけましたが、混乱しました。私はこれに何時間も費やしてきたので、今はコミュニティに任せています。
敬具
ムハンマド
wpf - IMultiValueConverter ConvertBack の問題
私は wpf + mvvm を使用しており、条件付きコンバーターを実装しようとしています。これが私がxamlでやっていることです:
そしてマルチコンバーター:
だから私がやりたいことは、ユーザーがいるページの種類に基づいて、viewController にあるさまざまなモデルにページ上の要素を条件付きでバインドすることです。
コンバートバックのために何をする必要がありますか? 戻り配列のどの要素に値が属しているかを知る方法がわかりません。何か案は?
wpf - MultiBinding は機能しないが、対応する Binding は機能する
次のコードがあります。
設定は、含まれているコントロールのデータ型が「SIP_ServiceItem」であることです。このクラスには、"Meeting" という名前のプロパティ (local:StaffAtMeetingEditor コントロールの DataContext として設定されます) があり、それ自体に "ParentSI" というメンバーがあり、親 SIP_ServiceItem オブジェクトを指しています。
問題は、これを 1 つのバインドとして渡す (つまり、上記のコードから MultiBinding の開始タグと終了タグを削除し、Binding だけを残す) と、問題なく動作することです。しかし、これを MultiBinding にし (これに他のバインディングをすぐに追加したい)、バインドされた値を myMeetingLogEditableMultiConverter に渡そうとすると、ブール値の ParentSI.ItemInEditMode に対応するはずの values(0) パラメータが実際にはMS.Internal.NamedObject、どこかに null 参照があることを意味します。さらに、ParentSI プロパティは評価されないため、何かが完全に間違っています。シングルバインディングとマルチバインディングの違いがわかりません。
ありがとう。
wpf - マルチバインディングのバインディングを使用した ConverterParameter
MultiBinding の ConverterParameter に Binding を追加することは可能ですか? このようなもの:
IsFiltered は、テンプレートが適用されるオブジェクトのプロパティです。Binding が正しくない/ConverterParameter で許可されていないという XAML パーサー エラーが常に発生します...または、これを行う他の方法はありますか??
はじめまして、
ユルゲン
c# - マルチバインディングを手動で更新する方法
に問題がありましたBinding
。依存関係プロパティは、コンバーターでRectangle.Fill
にバインドされていObservableCollection
ました。をObservableCollection
実装しますINotifyCollectionChanged
が、バインディングは更新されませんでした。ただし、コレクションの変更通知イベントに委任をアタッチし、バインディングを手動で更新することで、これを解決することができました。
しかし、最近、に変更したBinding
ところMultiBinding
、上記の解決策が機能しなくなりました(b
is null
)。にターゲットプロパティを強制的Multibinding
に更新する方法はありますか?
よろしく-スプーク。
wpf - MultiBinding コマンド パラメータにオブジェクト バインディングを含める
a を使用<MultiBinding>
して ViewModel のコマンドに 2 つのパラメーターを渡そうとしていますが、XAML パーサーが私の試行を受け入れるのに問題があります。
オブジェクトUserControl
のコレクションにバインドされているmy に含まれる次の ListView を検討してください。Ticket
それぞれのスタイルListViewItem
そして、ContextMenu
クエリのソースが置かれている参照アイテム。
これが私がやろうとしていることです。
コンテキスト メニューには「チケットを通知として送信」という 1 つの項目があり、これを選択すると、
Agents
通知を受け取ることができる利用可能なすべての項目が一覧表示されます。これは機能します。これらのエージェント オプションの 1 つをクリックすると、コンテキスト メニュー項目から、コンテキスト メニューを表示するため
/li>ticket
にクリックされた項目listview
(これは機能します) とAgent
、コンテキスト メニューから選択した項目の両方が送信されます。私はこれを半分達成しましたMultiBinding
コンテキストメニューの実際のセットアップは、私には複雑に思えますが。パラメーターの 1 つがMultiBinding
クリックされたアイテムにバインドされた実際のアイテムであるという実際の指定は、ContextMenu.MenuItem
非常に単純なコマンドのようです。コンテキスト メニューにはすべてのエージェントが正しく一覧表示されるので、この現在のオブジェクトをコマンド パラメーターとして送信するように要求するだけでよいと思います。私も試しました。
としても
しかし、パラメーター コンバーターに送信されるのは、UnsetValue
お時間を割いていただき、ありがとうございました。
.net - マルチバインディングデータグリッドの選択されたアイテムが機能しない
以下を使用して、データグリッドから選択したアイテムを取得します。これは正常に機能します。
これで、2つのデータグリッドから選択されたアイテムの2つのリストを必要とするコマンドができました。そこで、次のマルチバインディングを試しました。
私のconverter.Convert()
メソッドは初期化時に1回呼び出されますが、CommandParameter
常にnullです。多分私は何かが欠けています...
編集:grdDruckVersandとgrdAusgabeはDataGridです
コンバータ:
wpf - MultiBindingを使用してWPFDataGridセルの前景色を変更する際の問題
特定のセルの内容の値を指定して、行全体ではなく、DataGridCellの前景色を変更しようとしています。たとえば、セルの日付値が古くなっている場合は、前景を赤に設定します。私は、MultiBindingを使用してデータグリッドから2つの値を抽出し、IMultiValueConverterを実装する値コンバーターを介してそれを解析しているところです。
つまり、コンバーター自体に入る必要がないので、次のXAMLを作成しました。
次に、データグリッドに追加しました:CellStyle="{StaticResource CellHighlighterStyle}"
。
これで、コンバーターは最初のValue[0]
プロパティをDataGridCellと見なしますが、2番目の値はある種のDependencyPropertyで構成されています。実際に行を取得したいときに、デフォルトまたはダミーのプロパティを作成したようなものです。実際、私は本当にその行に関連付けられたクラスオブジェクトを取得したいと思います。私のDataGridはにバインドされていList<of a class object>
ます。
私は数インチ離れていると確信しています。フィールドの値を抽出できるようにDataGrid行を解析するか、返したい色を返すためにその行または列自体にバインドされたオブジェクトを解析するにはどうすればよいですか?または、値を指定してDataGridセルのプロパティを選択的に変更するためのより良い方法はありますか?
c# - マルチ バインディング コンバーターを使用する理由
単一のバインディング コンバーターを使用して、DataContext のパラメーター パスとして使用し、そこから使用するプロパティを選択することはできませんか?