問題タブ [markup-extensions]
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# - WPFUserControlのボタンの有効な状態を動的に変更するための条件付きDataTrigger
データナビゲーターとして使用するUserControlを作成しました。このコントロールで2つのDependencyPropertiesを次のように定義しました(DependencyPropertyを意味します)。
次に、基本的なナビゲーション操作(最初、前、次、最後)を実行するための4つのボタンを配置しました。各ボタンのスタイルは次のとおりです。
このトリガーは、次のように、RelativeResource TemplatedParentが各ボタンのDataContextとして渡されると仮定して、DataCollectionDependencyPropertyがnullであるかどうかを確認するだけです。
次に、次のMarkupExtensionを作成して、比較操作と比較された値に基づいて、値を比較し、trueまたはfalseを返します。
最後に、このMEを使用して、各ボタンの「有効化」条件をテストしました。最初のボタンの条件は次のとおりです。
残念ながら、このソリューションは機能しませんでした。私はこの設計時の例外を受け取り続けます:
InvalidOperationException:ビューツリーの一部ではないViewNodeのNodePathを取得できません。
誰かがより良い解決策を持っていますか?たぶん私はここで大砲でハエを殺そうとしています。:)
前もって感謝します。エドゥアルドメロ
wpf - データトリガーのマークアップ拡張
私の WPF アプリケーションを変換するには、Binding オブジェクトを返すマークアップ拡張機能を使用します。これにより、アプリケーションの実行中に言語を切り替えることができます。このマークアップを次のように使用します。
データ トリガーを使用してボタンのテキストを変更したいと思います。
これにより、次の例外が発生します。
タイプ 'Setter' の 'Value' プロパティに 'Binding' を設定することはできません。「Binding」は、DependencyObject の DependencyProperty でのみ設定できます。
わかりました、これは私には理にかなっています。Resource で TextBlock を定義{StaticResource MyResource}
し、DataTrigger の Setter Value で使用しようとしました。しかし、これを行うと、ボタンのスタイルが正しく適用されません...
ボタン内の文字列のスタイルを設定する機能を損なうことなく、マークアップ拡張機能を使用してボタンのテキストを変更するにはどうすればよいですか?
wpf - Binding クラスから派生 (Silverlight 4.0)
既存のBinding
クラスを使用して、次のように記述できます。
したがって、何でもEmail として記述できます。妥当性検査Binding
自体はありません。BindingMore
から派生したクラスを書き始めたBinding
ので、最終的には、
を検証するためにトリガーされるものはどこSomeMethod
にありますICommand
か。それが私の目的であり、まだそれを書いていません。 delegate
Email
今のところ、このコードだけを書いています。
したがって、この段階でBindingMore
は、 は とまったく同じですがBinding
、次のように書くと
実行時エラーが発生します。でも、書くときは、
それはうまくいっています。最初のケースで実行時エラーが発生する理由を誰か教えてもらえますか?
残念ながら、エラーは表示されません。それが示すのはこれだけです:
また、XAML から次のエラー メッセージが表示されます (完全にビルドされて実行された場合でも (2 番目のケース))。
タイプ「local:BindingMore」はマークアップ拡張機能のように使用されますが、MarkupExtension から派生しません。
wpf - WPF : VS2010 でカスタム マークアップ拡張機能を使用する場合のスペース キーの問題
VS 2008 のカスタム マークアップ拡張機能を使用して、ローカリゼーション ソリューションを開発しました。
当時は、次のように使用していました。
(DefaultText のスペースに注意してください)。(StackOverflow のテキスト色ツールが単語の色を変更する方法にも注意してください)。
しかし、問題なく動作し、問題なくコンパイルされます。
ただし、VS 2010 では、マークアップ拡張機能を実装するこの方法を使用してスペースを入力しようとすると、IDE は常にカンマを追加します。これにより、次のようになります。
もちろん、それはもうコンパイルされません...
それに対する 1 つの解決策は、このマークアップ拡張機能を別の方法で実装することです。
しかし、多くの行が追加され、ご想像のとおり、テキストブロックが 1 つだけではありません...
別の解決策は、スペースを入力するのではなく、別のスペースをコピーして貼り付けることです (これは VS 2010 でもコンパイルできますが、非常に粗雑です)。
私が見ているように、私たちのソリューションはベスト プラクティスではありません。
不便なくスペースを入力できるようにするには、どのようなベスト プラクティスをアドバイスしますか?
あなたの洞察に感謝します。
wpf - WPF、ローカリゼーション: コントロール値の再評価
私は、WPF でのローカリゼーション方法について小さな調査を行っています。マークアップ拡張機能のアイデアについて聞いたことがあります。
<Label Content="{local:Translate {-- label ID here --}}" />
私はこのソリューションがとても気に入っています。実装が非常に簡単で、柔軟性が高いようです。ただ、ひとつ気になることがあります。ユーザーがランタイムでロケールを変更したとします。ローカライズされたプロパティが新しい言語に一致するように再評価されるようにするにはどうすればよいですか?
wpf - WPFはすべてのコントロールの横に小さな数を表示します
多くの FrameworkElements (TextBlock、CheckBox、ListBox ..) があり、すべてのコントロールに加えて少数を表示できるようにしたいと考えています。
いくつかのテキスト ³
MarkupExtension を作成するというアイデアが思い浮かびました。ここでは、その番号を次のように記述できます。
そして、それを何らかの方法でコントロールのテンプレートに追加します。
しかし、皆さんにはこの問題に対するより良い解決策があると確信しています;)
wpf - CustomBindingMarkupExtensionのパスをResharperに解決させる方法
拡張されたBinding-Markup-Extensionを作成したいのですが、これは通常のWPF-Bindingと同じように動作しますが、さらにいくつかのことを行います(異なるデフォルトを使用する、動作を追加するなど)。コードは次のようになります。
ResharperにBinding-Pathを正しく解決させることができないことを除いて、XAMLインテリセンスを含めてすべて正常に機能します。つまり、このコードを使用して[Strg] +「CurrentText」をクリックすると、Resharperはvs2010でCurrentText-Propertyを定義するコードに移動できます。
しかし、実行時に正しく機能するバインディングを使用すると、「CurrentText」にカーソルを合わせるとツールチップが表示され、「MS.Internal.Design.Metadata.ReflectionTypeNode」であり、[Strg]+クリックによるナビゲーションは表示されません。
私は次のことを試しました:
元のクラスBindingとBindingBaseも調べましたが、コードにこれ以上の違いは見つかりませんでした。ここで何が役立つべきかアイデアはありますか?それとも、これは、自分のMarkupExtensionsでは決して得られないBinding-MarkupExtensionの特別な扱いですか?
アップデート16.03.2011:Resharperのバグまたは欠陥である可能性もあり、Jetbrainsは問題を調査しています:http://youtrack.jetbrains.net/issue/RSRP-230607
アップデート10.12.2013:その間、この機能は機能しているようです(R#7.1.3、おそらく以前のバージョンでも)、私は実際にBindingDecoratorBaseでこのアプローチを使用しており、とても気に入っています。MarkupExtensionが「Binding」で終了する場合にのみ機能するかもしれませんが、私の場合は機能するので、私は満足しています。
c# - .net 4.0 マークアップ拡張機能 WPF
私は別の苛立たしい問題を抱えて戻ってきました。問題は .net 4.0 フレームワークにあります。TargetProperty 型のキャストに問題があるようで、msdn フォーラムでも報告されています。ここで使用するコードを掲載しました。誰かが私に解決策を提案できますか?
この問題について言及している MSDN リンクを以下に貼り付けます 。
wpf - XAML でマークアップ拡張機能を使用したコレクション プロパティの入力が失敗する
コレクション (リスト) プロパティに、マークアップ拡張機能によって提供される値を入力しようとしています。コレクションを提供するプロパティにパブリック セッターがある場合、これを行うには問題があります。XAML 実装 (.NET 3.5 を使用) のバグだと思いますが、よくわかりません。
次のテストクラスを検討してください
次のマークアップ拡張機能は、文字列を提供するだけです。
これで、次のテスト ケースはすべて正常に動作します。
しかし、このテスト ケースは失敗します。
失敗したケースでは、'string' を 'List' に変換できないという例外がスローされます。同様のケース d) と c) が正常に機能する場合、これが失敗する理由の説明はありますか?
silverlight - Silverlight XAML で「タイプ」をインスタンス化する方法はありますか?
Silverlight には非常に魅力的なx:Type MarkupExtension がないことはよく知られています (MarkupExtensionは Silverlight ではまったくサポートされていません)。それに対する動的な回避策はありますか?
列挙型 ( x:Static
) はどうですか?
CommandParameter をType
またはEnum
値に設定する必要がありますが、これらはどちらも Silverlight ではサポートされていません!