問題タブ [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.
c# - valueconverter を使用した動的データテンプレート
データがコレクションである wpftoolkit データグリッドにデータを表示したい
候補リストの候補の数は、実行時に構成可能です。
望ましいグリッド レイアウトは次のようになります
Foo | Bar | Candidate 1 | Candidate 2 | ... | Candidate N
したがって、バインド式が変更されるため、xaml で候補の DataTemplate を作成できないようです。
次のように AutoGeneratedColumns イベントに必要な列を追加します。
ただし、これは次の例外で失敗します: タグ 'FooConverter' が XML 名前空間 'clr-namespace:WpfToolkitDataGridTester;assembly=WpfToolkitDataGridTester' に存在しません。行 '3' 位置 '54'。
StaticResource を DynamicResource に変更しても、変更はありません。
私は何が欠けていますか?
FWIW: ハードコードされたデータテンプレート
およびそのように定義されたテンプレート列
「動作」しますが、Candidates[0] がハードコーディングされているため、明らかに望ましい結果が得られません。
wpf - WPF:バインディング時にValueConverterを指定する別の方法
バインディングに値コンバーターを指定する際に遭遇した最も一般的な方法は、次のとおり
です。1.値コンバーターのインスタンスをリソースとしてキーを使用して作成します。
2.StaticResourceマークアップ拡張機能を使用してインスタンスを参照します。
Q:静的インスタンスを次のように使用することに何か問題がありますか?
私の場合、値コンバーターは不変です。
編集:別の方法は、コンバーターを拡張機能 に変換して、マークアップ拡張形式を使用してコンバーターを指定することです。
wpf - ブラシ用のWPFValueConverterの作成
今日のNerdPlusArtブログには、作成者が頻繁に使用する矢印のWPFリソースの作成に関する投稿がありました。戻るボタンと進むボタンがあるサイドプロジェクトがあるので、左矢印と右矢印がこれらのボタンでうまく機能すると思いました。
LeftArrow
およびジオメトリをアプリケーションのリソースに追加しRightArrow
、ボタンのコンテンツとして使用しました。
ボタンが有効になっているかどうかに関係なく、矢印が黒で描かれていることを除いて、それは機能しました。だから、私はValueConverter
からに行くためにを作成しbool
ましたBrush
:
(ハードコードされた黒とグレーの代わりにシステムカラーを使用する必要があることはわかっていますが、最初にこれを機能させたかっただけです。)
コンバーター(アプリケーションのリソース内で作成したもの)を使用するようにのFill
プロパティを変更しました。Path
残念ながら、これは機能しません。理由はわかりません。実行すると、矢印がまったく描画されません。Visual Studioの[出力]ウィンドウを確認しましたが、バインドエラーは表示されませんでした。bool
また、ボタンを有効にするかどうかに基づいて、がコンバーターで正しい値であることを確認しました。
Path
戻るをaに変更すると(そしてと同じ方法でTextBlock
そのプロパティをバインドすると)、テキストは常に黒で描画されます。Foreground
Path.Fill
私は何か間違ったことをしていますか?コンバーターから返されたものがボタンのBrush
レンダリングに使用されないのはなぜですか?Path
wpf - 値コンバーターを使用したデータバインディングが機能しません
次のような単純な Item クラスがあります。
そして、ValueConverter は次のようになります。
私の WPF ウィンドウで、Item オブジェクト (List< Item >) のリストを保持する DependencyProperty (Items と呼ばれる) を宣言し、この XAML コードを使用してこの DependencyProperty にバインドする ComboBox を作成します。
以下のコードを 1 回実行すると、データバインディングは正常に機能しますが、再度実行すると値の変換が失敗します。
問題は、ItemToStringConverter.Convert メソッドに、Item オブジェクトではなく最初のパラメーターとして文字列オブジェクトが渡されることです。
私は何を間違っていますか?
よろしく、ケネス
c# - ASP.Net用のWPFのValueConvertersに似たものはありますか?
WPFを使用してプロジェクトを実行し、その優れたデータバインディング機能に非常に愛着を持った後、ASP.Netに戻り、WPFの機能の一部を見逃し始めています。
私の質問は... ASP.Net用のWPFのValueConvertersに似たものはありますか?
たとえば、UserControlにパブリックプロパティを公開させたいのですが、これはでIEnumerable<int>
あり、ユーザーはソースからそのようなプロパティを入力できます。
次に、の値は、WPFのValueConverterのようなものでTheList
に変換されます。IEnumerable<int>
[更新]解決策
Nathan Baulchが言及したおかげで、私はこの質問TypeConverter
に出くわし、文字列からリストへのコンバーターを構築することができました。
wpf - WPF : コントロール バインディング - C# コードから IValueConverter をトリガーする
私の XAML コードでは、コントロールの Height プロパティを親コントロールの ActualHeight にバインドしました。使用する元の値と IValueConverter からオフセットを計算する必要があるためです。
これはこれまでのところうまくいきます。
何らかのイベントの後、ValueConverter 内の式が変更され、別の出力が生成されます。しかし、ウィンドウのサイズを変更した後にのみ、コントロールが更新されて整列されます。(C# コードから) コントロールにそれ自体を更新し、ValueConverter から新しい値を取得するように指示する方法はありますか?
silverlight - ControlTemplateで使用されるValueConverterをパラメーター化するための良い方法は何ですか?
私が取り組んでいるテンプレート化されたコントロールは、次のようなValueConverterを使用します。
これは、generic.xamlで提供するデフォルトの外観です。このコントロールを使用するときは、さまざまな形式の文字列をコンバーターに渡したいと思います。完全なControlTemplateを提供せずにそれを実現する方法はありますか?
私が最初に考えたのは、コントロールのプロパティにTemplateBindingを指定してConverterParameterを使用できるということでしたが、ConverterParametersをバインドできないことがわかりました。別のオプションは、ConvertToメソッドからコントロールにアクセスし、そのプロパティをピックオフすることです。どうすればいいのかわかりません。使用するたびにコントロールを完全に再テンプレート化する必要をなくすオプションは役に立ちます(Xamlがたくさんあります)。
wpf - INotifyPropertyChange はコンバーター ベースの値を更新しませんか?
ソースが次のように設定された画像がありますValueConverter
:
バインドされたオブジェクトがPropertyChanged
(から) イベントを発生さINotifyPropertyChanged
せても、イメージは変化しません。これは、WPF がコンバーターが参照するフィールドを認識していないためだと思います。
特定のプロパティが変更されたときに、このコンバーターを再バインド/再実行するように WPF に指示するにはどうすればよいですか?
silverlight - SilverlightDatePickerのテキストからDateTimeへの変換をインターセプトします
DatePicker
次のテキストをDateTime
(国際形式で表示)に変換して、顧客がテキストボックスに日付をDatePicker
すばやく書き込むことができるようにしたいので、使用するのDateTime.Parse
は私だけではありません。
私はそれを行うためにさまざまな方法を試しましたが、それらは機能しません。DatePicker.Text
//カスタムvalueconverterでDatePicker.SelectedDate
バインドしようとしました。しかし、テキストに到達する前にすでにテキストを処理しているDatePicker.DisplayDate
ため、機能しません。DatePicker
私もDatePicker
TextBox.LostFocus
このように変換しようとしました:
何か案は?