問題タブ [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# - Xamarin.Forms.Xaml.XamlParseException: MarkupExtension が見つかりません
最終的にローカリゼーションを実装するために、Xamarin フォームでカスタム マークアップ拡張機能を使用しようとしています。Xamarin フォームの例の行を長くしようとしています。
拡張機能を使用する XAML コードの一部を次に示します。
Translation Extension Markup のコードは次のとおりです。
それが問題の原因である場合に備えて、コードの一部をコメントアウトしました。
これを実行しようとするたびに、次のエラーが表示されます: Xamarin.Forms.Xaml.XamlParseException: MarkupExtension not found for local:Translate. 私が見ているすべての例は同じように行われているように見えるので、なぜマークアップ拡張機能が見つからないのか、私は非常に混乱しています。これがなぜなのか誰か知っていますか?一般的に、Xamarin フォームの良い例を見つけるのに多くの問題があります。
c# - カスタム MarkupExtension を XAML ファイルから表示/アクセス可能にする方法は?
で別のプロジェクトを使用するメインアプリがありますMarkupExtension
。参照を追加し、XAML ファイルにも追加しましたが、使用しようとするとエラーが発生します。
MarkupExtensionTranslationExtension
のサブクラスです (もちろんパブリックです) 。
ソリューション全体を再構築しました-変更はありません。
c# - MarkupExtension を使用した IValueConverter
最近、IValueConverter
からも継承するについて読みましたMarkupExtension
。それは次のようなものでした:
使用法は次のようになります。
私は、次のような Resource からのコンバーターを使用していました。
私の最初の質問は次のとおりです。より良い方法は何ですか? を使用している場合、どのような利点がありますかMarkupExtension-Version
(使用法が入力しやすいことに加えて)?
次のような非常によく似た実装も見ました。
私の理解が正しければ、最初の解決策はこのコンバーターのインスタンスを 1 つだけ作成します。2 つ目は、XAML ごとにこのコンバーターの新しいインスタンスを作成しますよね?
wpf - XAML での文字列補間
数値にバインドするときにゼロを空の文字列に置き換えるなど、いくつかの単純なシナリオで値コンバーターの代わりに使用するなど、XAML で C# 6 文字列補間を進める方法を考えています。
その設計議論から:
補間された文字列は、文字列の「穴」を埋める式と共に文字列のテキストを書き込むことによって、型 String (または IFormattable) の値を構築する方法です。コンパイラは、補間された文字列からフォーマット文字列と一連の埋め込み値を構築します。
.g.i.cs
ただし、私が疑ったように、別のコンパイラを使用して BAML を生成し、生成されたファイルに文字列の痕跡が見つからないため、XAML からは使用できないようです。
- 文字列補間は XAML でサポートされていませんか?
- どのような回避策がありますか? 文字列補間を動的にコンパイルするためにマークアップ拡張機能を使用している可能性がありますか?
c# - WPF での ConstructorArgumentAttribute の使用に関する問題
以下のようなカスタムマークアップ拡張機能を作成しました
{local:CME {x:Type sys:Boolean},Bool}
そして、CME クラスのすべての ConstructorArgumentAttribute を削除しても、XAML で CME クラスのインスタンスを作成するために使用できることがわかりました。
したがって、カスタム マークアップ拡張機能の実装で ConstructorArgumentAttribute が必要な理由、または ConstructorArgumentAttribute の意味を知りたいです。
これについて助けてくれる人はいますか?どうもありがとう。
wpf - カスタム マークアップ拡張機能のデザインタイムで型を解決する
次の問題があります。
私が行う場合: MyExtension : StaticExtension
は、
ProvideValue
VS2015 デザイナーによって常に呼び出されるとは限りません。呼び出されたら、次のことができます。
...そして必要な型を解決します。
私が行う場合: 、必要な方法で呼び出されたようMyExtension : MarkupExtension
に見えますが、 を返します。ProvideValue
serviceProvider.GetService(typeof(IXamlTypeResolver));
null
より良い方法はありますか?