問題タブ [datatrigger]

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 に答える
8096 参照

wpf - DataTriggerを添付プロパティにバインドできますか?

WPFでは、DataTriggerがアタッチされたプロパティにバインドすることは可能ですか?

基本的に、特定の検証ルールが破られたときにスタイルを提供するために、アタッチされたプロパティでコンバーターを使用したいと思います。私は次のようなマークアップを使用しています:

ただし、これを実行すると、次のようになります。

System.Windows.Dataエラー:39:BindingExpressionパスエラー:'Validation'プロパティが'オブジェクト''' TextBox'(Name ='')'に見つかりません。BindingExpression:Path = Validation.Errors; DataItem ='TextBox'(Name =''); ターゲット要素は'TextBox'(Name ='');です。ターゲットプロパティは「NoTarget」(タイプ「Object」)です

DataTriggerバインディングパスを「Text」に変更しても、データバインディングエラーは発生しません(ただし、もちろん、求めている動作は提供されません)。

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

wpf - WPFデータトリガーが予期したときに起動しない

私は次のXAMLを持っています:

最初のテキストブロックはSelectedItems.Countで変更され、0、1、2などが表示されます。2番目のブロックのデータトリガーは、テキストを変更するために起動することはありません。

何かご意見は?

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

.net - DataTriggerを共有することは可能ですか?

XAMLでDataTriggerを定義しましたが、これをいくつかの場所で使用したいと思います。それをリソースとして定義して共有することは可能ですか?

これが私のトリガーです:

これをWindow.Resourcesで定義してキーを指定することはできますが、XAMLの残りの部分でこれを参照するにはどうすればよいですか?

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

wpf - WPF: datatrigger をプロパティ "Ischecked" にバインドするときのチェックボックスの問題

データベース値の表示/変更に使用する GridViewColumn にチェックボックスがあります。チェックボックスのクリック イベントは、データベース内の値の変更に使用されます。プロパティ「IsChecked」の状態を処理するために、データトリガーとセッターを使用しています。以下の xaml コードを使用しています。

チェックボックスをクリックするまで、バインディングはうまく機能します。チェックボックスを初めてクリックした後、プロパティ「IsChecked」にマップした値をデータベースで手動で変更すると、プロパティ「IsChecked」の状態が更新されません。たとえば、チェックボックスのプロパティ「コンテンツ」に同じ値をマップすると、チェックボックスをクリックした後でもトリガーは正常に機能します。

誰も何が問題なのですか?

0 投票する
12 に答える
176776 参照

wpf - 値が null ではない DataTrigger?

値が NULL かどうかを確認して何かを実行するセッターを作成できることはわかっています。例:

しかし、「NOT NULL」または「NOT = 3」のように、「not」値を確認するにはどうすればよいでしょうか? XAMLでそれは可能ですか?

結果:ご回答ありがとうございます... 値コンバーターを作成できることはわかっていました (つまり、コードを使用する必要があり、期待どおりの純粋な XAML にはなりません)。ただし、それは純粋な XAML では事実上「いいえ」できないという質問に答えます。ただし、選択された回答は、おそらくそのような機能を作成するための最良の方法を示しています。良い発見。

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

c# - WPF: リストビュー セルの内容をデータトリガー (または同等のもの) と交換する方法

ListView を実装する WPF アプリがあります。行が表すデータの種類に応じて、列の 1 つに画像 (小さなアイコン) を表示したいと思います。Windows Explorer に表示される表示のようなものです。

XAML の他の場所で DataTriggers を使用しています。セルの内容全体を交換するために同様の方法を使用できるようですが、それを行っている例は見つかりません。

何かご意見は?

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

wpf - ソース データに応じて、WPF グリッド内の画像を別のコントロールに置き換えるにはどうすればよいですか?

私はそのようにレイアウトされたグリッドを持っています;

これはすべてうまくいきますが、リストビューで選択したアイテムに画像がない場合、「申し訳ありませんが、画像がありません」という別のコントロールセットに画像を変更したいと思います

画像を DockPanel にラップし、そこに DataTemplate を設定しようとしましたが (DataTriggers を使用できるように)、IntelliSense はノーと言います!

ListView は DataTriggers を使用して同様のことを行いますが、私が言うように、DataTemplate にアクセスできないように見える単一の画像に対してそれを行う方法がわかりません。

簡略化された XAML は以下のとおりです。

WPFの達人に感謝します。

ライアン

更新: 以下の両方の回答 (Abe と Jobi) は的確でした、ありがとう。

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

.net - WPF ListViewItemロストフォーカスイベント-イベントに参加するにはどうすればよいですか?

行/アイテムを選択するリストビューがあります。これは、行に画像を表示するデータトリガーにリンクされています。画像は、行が選択されている場合にのみ表示されます。

この部分は正常に機能しますが、フォーカスをテキストボックスなどの他の場所に移動したり、メッセージボックスが表示されたりすると、listviewitemはフォーカスを失います。つまり、行のハイライトは表示されなくなります。問題は、私の画像がまだ残っていることです。リストビューがフォーカスを失ったときは非表示/折りたたむ必要があります...リストビューで別のアイテム/行を選択すると正常に機能します。

誰かがこれを手伝ってもらえますか?

よろしく

TravisPUK

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

wpf - WPFトリガー

セルに対して取得した値が特定のタイプである場合に、テキストのブロックを表示するトリガーを設定しようとしています。

私は同じ状況で画像を表示することに成功しましたが、この状況では画像は必要ありませんが、テキストが必要です。

test.tryを機能させるために、行をコメントアウトしました。コメントアウトされたコードは機能します!その中のtextblocktext=xxxはそうではありません。

これは私の試みです

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

wpf - DataTemplate データ トリガーは 2 回目からのみ機能します

次の XAML があります。

その XAML は Window 要素内にあります。State と MainContent の 2 つのプロパティを持つ ViewModel オブジェクトに Window をバインドしています。

それに応じて、プロパティ セッターから PropertyChanged イベントを発生させます。

ここで、ボタンを使用してディスクからファイルをロードし、それを解析してオブジェクトを作成し、MainContent プロパティに割り当てます。解析する前に State プロパティを 2 (ロード中) に設定し、割り当て後にプロパティを 1 (ロード済み) にリセットしました。

初めてファイルを解析すると、データ テンプレートのトリガーが機能しません (トリガーが、親ウィンドウ、つまり ViewModel オブジェクトのデータ コンテキストの State プロパティにバインドされていることに注意してください)。しかし、2回目はそうです!

誰かがエラーの場所を指摘できますか?

申し訳ありませんが、ここにコードを投稿することはできませんが、回答があり、メールをいただければ共有できます..