問題タブ [multidatatrigger]
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# - DataGrid行ごとに異なる選択色
行のタイプと選択されているかどうかに基づいて、データグリッドのさまざまな行にさまざまな色を設定しようとしています。
これを実行すると、ArgumentExceptionが発生します。キーをnullにすることはできません。
どうすればこれを修正できますか?
wpf - 行に奇数があるかどうかを確認する方法は?
XAML を使用して奇数行に別の色を設定しようとしています。
問題のデータグリッドには 3 種類のデータがあり、それぞれ異なる色を付けたいのですが、単に AlternatingRowBackground を変更するだけではうまくいきません。
私は次のようなものを使用する予定です
のようなプロパティはないようですIsOddRow
。代わりにどのプロパティを確認する必要がありますか?
wpf - WPF-2つの異なるデータビューからdatagridの1つのマルチデータトリガーにバインドする方法
私はMVVMパターンを使用しており、2つのブール値がtrueに設定されている場合にいくつかの画像を表示する列を持つ1つのDataGridがあります。1つの値は行を生成するためにバインドされるDataView(DtView)にあり、バインドに問題はありませんが、もう1つの値はViewModelのパブリックプロパティ(DtViewと同じ)であり、ここに問題があります。これを解決する方法がわかりません。
これが私のコードです:
誰かが私を助けてくれるなら、私は本当に幸せになるでしょう。なぜなら、これはイライラしていて、このコードを修正する方法がわからないからです。
wpf - マルチトリガー条件がデータグリッドで機能しない?
次のデータグリッドがあり、グリッドが読み取り専用に設定されているが条件の設定方法がわからない場合、cover = false の行を色付けしたいと思います。問題は、カバー = false の最初の条件にあるようです。この条件を削除したかのように、他の条件が機能しています
wpf - トリガーが更新されない
これが私がやりたいことの疑似コードです
以下のToggleButtonのスタイルは、最初の更新で条件を正しく取得しますが、それ以降は変更されません。
たとえば、VMを無効にしない変更を加えた場合、色は正しく緑になります。ただし、vmを無効にするために変更を加えると、赤になるはずのときに緑のままになります。逆に、最初の更新でvmが無効になった場合、色は正しく赤に設定されますが、無効なエラーを修正するがvmをダーティのままにする2番目の更新では、色は緑に変更されません。
私は何が間違っているのですか?
Visual State Managerをまだ試していませんが、それが好ましい方法でしょうか?それはどのように見えるでしょうか?
使用法
スタイル
c# - wpfでEntityFrameworkモデルをデータコンテキストとして使用する
Entity Framework Model を使用して SQL サーバーからデータを表示/編集する必要がある単純な WPF アプリケーションを作成しています。小さなテスト ウィンドウを作成して動作を確認したところ、プロパティ変更イベントとデータ検証が自動的に実装されていることに気付きました。ここに私のxamlがあります:
ここに私のコードがあります:
MHeight は整数であり、テキストボックスに整数以外の値を入力すると、境界線が赤くなり、ボタンが無効になります (上記の検証スタイルに従って)。ボタンをクリックすると、新しいデータが正しく保存されます。
EF モデルは INotifyPropertyChanged および IDataErrorInfo インターフェイスを実装していますか?
wpf - ListBox内のインデックスに応じたListBoxItemのスタイル設定
SomePropertyの値が10の場合、コードビハインドなしでリストボックスの最初の項目のマージンを変更したいと思います。これは私がこれまでに持っているものです:
このアプローチを試してみると、次のようになります。
System.Windows.Dataエラー:4:参照'RelativeSource FindAncestor、AncestorType ='ListBox'、AncestorLevel='1''でバインドするためのソースが見つかりません。BindingExpression:Path = Items.Count; DataItem = null; ターゲット要素は'ListBox'(Name ='');です。ターゲットプロパティは「NoTarget」(タイプ「Object」)です
最初の条件しかない場合は、マージンが適切に適用されます。私が試したもう1つの方法は、ElementNameを使用することでした。
このアプローチではエラーは発生しませんが、機能しません。
どんな助けでも大歓迎です。
wpf - 親プロパティを子要素データテンプレートにバインドする方法
DataGridsがコンバーターを介して子になる場合は、DataGridのRowStyleプロパティをVisibilityにバインドする必要があります。重要なのは、子がDataTemplateに存在するということです。以下の私のコードは、私が今行っていることの単純化されたバージョンであるため、あまり意味がないかもしれません。とにかく:
重要なのは、TextBlockとImageが個別に折りたたまれる可能性があるということです。両方が折りたたまれている場合は、DataGridRowを折りたたむか非表示にして、グリッドに表示されないようにする必要があります。私の計画は、「DataGridRowStyle」という名前のRowStyleを定義することでした。スタイルはTextBlockとImagesのVisibilityプロパティによってトリガーされ、RowStyleのVisibilityを折りたたみに設定します。
残念ながら、実行時に警告が表示され、System.DataがtextBlockまたはimage要素を検出できません。DataTemplateにバインドできないと思いますが、どうすればよいですか?どういうわけか同じことを別の方法で行うことはできますか?
wpf - TriggerをSourceNameおよびDataTriggerと組み合わせるにはどうすればよいですか?
私のWPFコントロールには、次の2つのトリガーがあります。
と
どちらも問題なく動作します。しかし、私はこれらの組み合わせが必要です。私はこれを試しました:
しかし、それは何もしません。出力ウィンドウに次のメッセージが表示されます。
System.Windows.Dataエラー:17:''(タイプ'String')から'IsMouseOver'値(タイプ'ブール値')を取得できません。BindingExpression:Path =(0); DataItem ='String'(HashCode = 1047858601); ターゲット要素は'TreeViewExItem'(Name ='');です。ターゲットプロパティは'NoTarget'(タイプ'Object')です。InvalidCastException:'System.InvalidCastException:Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.DependencyObject"umgewandeltwerden。
それは私に何も教えてくれません。それはどのように機能しますか?
更新:完全なプロジェクトコードがGitHubリポジトリで確認できるようになりました。MultiDataTriggerの私の当て推量は、現在にあります。
c# - 空のテキストボックスの検証
wpfアプリケーションに3つのテキストボックスがあります。ユーザーがこれらのテキストボックスに値を入力してクリックするとAdd
、これらがリストに追加され、データグリッドに表示されます。
テキストボックス自体は何にもバインドされていません。これらのテキストボックスの値を、データグリッドにバインドされたobservaleコレクションに追加します。ユーザーがテキストボックスに空の値を入力できないようにしたい。それはどのように行われますか?
私はいくつかの例を見ましたが、それらはすべて値にテキストボックスが表示されてから使用されBinding.Validation
ました。テキストボックスへのバインドがある場合、これはどのように行われますか?
空の値を入力するときにフリーズする必要があるボタンもあります。そのために、私はクラスを作成し、次の方法でクラスをバインドすることによって、次のアプローチを使用しました。
.csクラス