問題タブ [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# - 'System.Windows.Data.MultiBinding' はプロパティ 'Text' の有効な値ではありません
MarkupExtension
バインディングを定義するために独自のメカニズムを使用できるようにするカスタムを作成しようとしていますが、自分MultiBinding
からa を返そうとするMarkupExtension
と、上記の例外が発生します。
私は持っている:
CustomMarkup
を返しますがMultiBinding
、明らかText
に a に設定されるのが好きではありませんMultiBinding
。私が言うと、どうしてうまくいくのですか:
でも、私のやり方ではうまくいきませんか?
c# - キャッチできない例外
フォローアップ: キャッチできない例外、pt 2
カスタム バインディング エンジンを作成しています。私のコンバーターは、ターゲット要素に DataContext が設定される前に呼び出されています。DataContext が最終的に値を受け取ったときに更新されるため、これ自体は大したことではありません。問題を引き起こしているのは、DataContext が null であるために取得している NullReferenceException です。これは、キャッチしたくないようです。
値コンバーターで例外をキャッチしようとしていますが:
何らかの理由で、デバッガーはこの時点でまだ停止しています。
(これは、catch ブロックのある場所までスタック トレースを少しバックアップしたものです。実際の例外は _member メソッド内で発生します。奇妙な点は、catch ブロックがグレー表示されているにもかかわらず、ブレークポイントに到達していないことです。)
今、私はそれがキャッチされている別のアセンブリで例外が発生している可能性があると考えています(これを再利用可能なクラスライブラリにパッケージ化しようとしており、上記の _member はアプリケーションアセンブリのメソッドを指しています)。
デバッガーなしで小さなテスト アプリを実行すると正常に動作しますが、私のアプリケーションはもう少し堅牢であり、これが原因でトリガーされる一般的な例外処理があります。
例外を想定どおりにキャッチするために使用できる属性または何か(または、おそらく欠落しているリフレクションパラメーター)があるかどうか疑問に思っています。
更新:これは、リフレクションと MethodInfo.Invoke の使用によるものに違いないと確信しています。例外はNullReferenceExceptionの内部例外を持つ「TargetInvocationException」の最初のようです。呼び出し例外がコールスタックの外側で何らかの形で発生しているため、呼び出しスタック内でキャッチされていないようです。私はスレッドで何もしていませんが、おそらく MethodInfo.Invoke 内で何らかの暗黙のスレッド シフトが行われているのでしょうか?
これを強制的にキャッチする方法、またはこの問題を起こさないメソッド名からメソッドを呼び出す別の方法を誰かが知っていますか? 私はちょっと困惑しています。
c# - この xaml マークアップ拡張機能に関する質問
以下の x:Key 属性のマークアップ拡張機能が何をするのか、またどのようなマークアップ拡張機能なのかを理解しようとしています。
ありがとう。
wpf - カスタム マークアップ拡張機能が RoutedEvents を返す
閉じるボタンの一般化されたイベントを作成しようとしています。ウィンドウを閉じる必要がありますが、その前に所有者ウィンドウにフォーカスを設定します。アプリケーションに30以上のウィンドウがあるため、それはかなり非現実的であるため、そのためのすべてのファイルにイベントを設定したくありません。(そのため、その動作を変更したい場合は、毎回 30 個のファイルを変更する必要があります)
それが正しいアプローチかどうかはわかりませんdelegate(object sender, RoutedEventArgs e)
が、コードは次のとおりです。
FocusClose メソッドは、ウィンドウを取得して閉じますが、以前にその所有者にフォーカスを設定します。しかし、私はそれを機能させることはできません。ボタンをxamlに設定すると、
(win は私のウィンドウ名です)、次のエラー メッセージが表示されます。
Click="{e:CloseWindow {Binding win}}" は無効です。'{e:CloseWindow {Binding win}}' は、有効なイベント ハンドラー メソッド名ではありません。生成されたクラスまたはコード ビハインド クラスのインスタンス メソッドのみが有効です。行 28 位置 17。
私は何か間違ったことをしていますか?これが最善のアプローチですか、それとも別のオプションがありますか? 前もって感謝します!
クラーク
wpf - x:タイプと配列-どのように?
簡単に言えば、私はこれを行う必要があります:
言い換えれば、私はこれを行う必要があります:
ワットは?
更新:2010年の設計面のバグです。実行時に正常に動作します。
.net - DataTemplateのDataType属性でジェネリック型の特定の実装を参照するにはどうすればよいですか?
この質問は、 「HierarchicalDataTemplateのDataType属性でジェネリック型を参照する方法」に対するこの回答と強く関連しています。
私はその答えの基本的な考え方に従い、このデータ構造を作成しました。
DictItemVM<T,U>
はのビューモデルであり、KeyValuePair<...>
BaseVMから派生しています。BaseVMにはDataTemplateビューがありますが、のために作成しようとしていますDictItemVM<string, Remote.Address>
。
Remote.Addressは、複合値タイプです(パスおよびアクセス情報を格納します)。Remote.Addressには、独自のDataTemplateビューがあります。
StaticResource "DictItemVMOfStringToRemoteAddress"ができたので、これを使用してDataTemplateを指定します。
これで、このDataTemplateをビューとして使用する必要がありますが、代わりにBaseVMのビューが表示されています。
誰かが私にこれについてのヒントをくれますか?
[編集:2010-08-09]
私が試したいくつかのこと:
x:Arrayの定義では、
基本的には、に置き換え
<mvvm:GenericType BaseType="{x:Type TypeName=remote:Address}"/>
ました。違いはありません。
<x:Type TypeName="remote:Address"/>
また、次のように(StaticResourceにリンクする代わりに)タグの間にDataTypeを作成しようとしました。
GenericType.InnerTypes内のx:Arrayを使用して、または使用せずに試してみましたが、どちらもこのエラーが発生しました。
次のような静的プロパティから型を渡そうとしました:
DataType="{x:Static mvvm:StaticTypes.DictItemVMOfStringToRemoteAddress}"
そしてこのように:
DataType="{Binding Path={x:Static mvvm:StaticTypes.DictItemVMOfStringToRemoteAddress}}"
違いはありません。
奇妙なことに、この特定のDataTemplateにはx:Key
、たとえば次のような通常の型を指すxamlリソースファイル内の他のすべてとは対照的に、何らかの値が必要ですDataType="{x:Type mvvm:EffectVM}"
。x:Keyを削除すると、このエラーが発生します。
wpf - WPF-バインディングパスからプロパティ値を取得する
MyObjectというオブジェクトがあり、MyChildというプロパティがあり、それ自体がNameというプロパティを持っているとします。バインディングパス(つまり「MyChild.Name」)とMyObjectへの参照だけがある場合、そのNameプロパティの値を取得するにはどうすればよいですか?
wpf - WPF-カスタムマークアップ拡張機能の単体テスト
WPFでカスタムマークアップ拡張機能の単体テストをどのように推奨しますか?おそらく、マークアップ拡張機能のインスタンスを作成し、ProvideValueメソッドを呼び出す必要があります。ただし、これにはIProvideValueTargetサービスを含むIServiceProviderが必要です。これをプログラムで生成するにはどうすればよいですか?
c# - C#コードからマークアップ拡張機能を使用するにはどうすればよいですか?
SomeExtension
MarkupExtensionがあると仮定します。誰かがそれをC#コードからプロパティに割り当てる方法を知っていますか?
これは、たとえばXAMLでは次のようになります。
C#コードを使用して同じことをしたいと思います。
python - Django テキスト マークアップ エディター
優れた django 固有のテキスト マークアップ エディターを提案できますか?