問題タブ [valueconverter]
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 - スタイル内の別のプロパティのバインディングへの WPF バインディング
この質問をする最善の方法はわかりませんが (あいまいな質問タイトルで申し訳ありません)、基本的には、データ コンテキストからプロパティに渡される値コンバーターを使用して、TextBox に MaxLength プロパティを設定したいと思います。渡されたプロパティのプロパティをコンバータ パラメータとして指定します。コントロールごとではなく、スタイルでこれらすべてを行いたいと思います。これを非スタイルの方法で行う例を次に示します。
(ご参考までに、TheirPropertyName は [StringMaxLength(15)] のような属性を持つ MyPropertyName の型のプロパティを表し、値コンバーター内で取得して返すことができます。)インスタンスではなく MyPropertyName のタイプを渡す方法はありますか? StringMaxLength 属性のルックアップを行うための型だけが必要です。
とにかく、どうすればこのようなことをスタイルで行うことができますか? 私は次のようになりました:
しかし、それは MyPropertyName オブジェクトとは対照的に、全体的なデータコンテキストを値コンバーターに渡します。バインディングの MyPropertyName.TheirPropertyName 部分を解析して、バインディングの ConverterParameter 属性で theirPropertyName を渡すことができるかどうかは本当にわかりません.
どんなガイダンスも本当に感謝しています!
wpf - 値コンバーターは、WPFでバインディングごとにインスタンス化されますか?
特定の値コンバータークラスが使用されているバインディングごとに、個別のWPF値コンバーターオブジェクトがインスタンス化されていますか?
双方向のビットからブール値へのコンバーターを作成しようとしています。bool
プロパティ(などIsChecked
)を値型(など)のビットにバインドできるようにしたいと思いushort
ます。コンバーターのparameter
引数を使用してビットを指定しています。ConvertBack()メソッドの実装は簡単ですが、Convert()は少し注意が必要です。
Convert()では、関心のある1ビットだけを切り替えることができるように、全体の値を知る必要がありushort
ます。ConvertBack()のたびに、値コンバータークラスのメンバー変数を使用してこれを一時的に格納することを考えていました。が呼び出されるため、上記の質問につながります。各バインディングは独自の値コンバータインスタンスを取得しますか?
wpf - 静的な wpf 値コンバーターを持つのは悪い考えですか?
リソースでコンバーターを宣言する代わりに、次のようなことができます
ここで、インスタンスは 1 回だけインスタンス化されます (lazy sinlgeton)
しかし、静的変数への参照を保持すると、ビューを破棄するときにガベージ コレクションの邪魔になるのではないかと心配しています (私は PRISM を使用しています)。どう思いますか?
wpf - 値コンバーターを使用せずにWPFでカスタム値タイプを表示する
私が取り組んでいるシステムは、内部で多数のカスタム値タイプを使用しています。WPFを使用してプロトタイプUIに取り組んでいます。WPFは、カスタムタイプの表示方法を認識していません。これを行うためのカスタムValueConverterを作成できることは知っていますが、XAMLでクラスにバインドするたびに、コンバーターの使用を指定する必要はありません。
WPFにネイティブに表示する方法を知らせるカスタム値型で実装できるインターフェイスはありますか?
または、すべてのバインディング式でValueConveterを指定しなくても、カスタムタイプの任意のインスタンスに適用されるアプリケーション全体の値コンバーターを指定する方法はありますか?
.net - mvvm アプリケーションで値コンバーターを使用するのはいつですか?
MVVM デザイン パターンを使用して WPF アプリケーションを実装している場合、値コンバーターを使用する状況はありますか? 値コンバーターは、ビューモデルが行うこととまったく同じことを行うように思えます。つまり、ビューのデータを準備しています。
では、値コンバーターの良い使い方はありますか?
敬具
オリバー・ハナッピ
wpf - WPF値コンバーターはカスタムイベントで再変換をトリガーしますか?
特定のイベントでwpfに値コンバーターを再度実行させる方法はありますか?
c# - ValueConverter を使用した IDataErrorInfo
私はどういうわけかそれを間違っていますが、私はそれを理解することはできません:
私はこのようなモデルを持っています:
このような ValueConverter:
そして、このようなビュー:
誰かが「1.1.1950」のような有効な日付を「1.1.abc」のような無効な日付に変更した場合、その値はその人に伝わらず、無効にはなりません。ただし、生年月日テキストボックスの周りに赤い境界線が表示されます。無効なテキスト (ユーザーが変更する) を保持し、IDataErrorInfo のエラーを登録するにはどうすればよいですか?
wpf - IValueConverter 実装の CultureInfo
ValueConverter がバインディングの一部として使用される場合、Convert
関数のパラメーターの 1 つがSystem.Globalization.CultureInfo
オブジェクトです。
このカルチャ オブジェクトがどこから情報を取得しているか教えてもらえますか?
そのカルチャに基づいて日付をフォーマットするコードがいくつかあります。自分のマシンでホストされている Silverlight コントロールにアクセスすると、日付が正しくフォーマットされます (マシンで短い日付形式として設定されているd/MM/yyyy形式を使用)。(クライアント マシンから) 別のサーバーでホストされている同じコントロールにアクセスすると、日付がMM/dd/yyyy hh:mm:ssとしてフォーマットされます。これは完全に間違っています。偶然にも、サーバーの地域設定がクライアント マシンと同じに設定されています。
これは私の値コンバーターのコードです:
基本的に、特定の形式をコンバーター パラメーターとして指定できますが、そうでない場合は、カルチャ オブジェクトの短い日付パターンが使用されます。
wpf - 値コンバーターを使用してGUIに適した文字列を生成しているのは、値コンバーターの誤用ですか?
現在、私は値コンバーターを使用して、GUI用のユーザーフレンドリーな文字列を生成しています。例として、ステータスバーに使用可能なエンティティの数を表示するウィンドウがあります。ビューモデルには、呼び出し元のコードが設定できるint依存関係プロパティがあり、エンティティの数を表示するテキストボックスのバインディングで、int依存関係プロパティと"x"を"xエンティティに変更する値コンバーターを指定します。 "。
私のコードはこれらのコンバーターで散らかっていて、XAMLには迷惑なリソース宣言がたくさんありますが、GUI固有の文字列形式はすべてコンバーターで分離されており、呼び出し元のコードは分離されていないため、これらは気に入っています。心配する必要はありません。しかし、それでも、これがバリューコンバーターの目的ではないのではないかと思います。
.net - xamlのwpfコンバーター
StaticResource を使用してリソースからコンバーターを取得したり、Static を使用して静的インスタンスから取得したりするなど、xaml で値コンバーターを使用する方法がいくつかあることを私は知っています。私の質問は、何らかの理由で、コード ビハインドで作成されたコンバーター インスタンスがあり、非静的プロパティを介してアクセスできることです。バインディングのために xaml でコンバーターのこのインスタンスを使用するにはどうすればよいですか?
ありがとう、
Q