問題タブ [attached-properties]
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 - コレクション コントロールと添付プロパティ
2 つの質問があります。
1) 次のように xaml で使用できるコレクション コントロールを作成したい:
これどうやってするの?
2) 上記と同様。
wpf - XAML、WPFで添付プロパティにバインドする方法
User.PasswordプロパティをPasswordBox(TwoWay)にバインドしたいと思います。PasswordBox.Passwordはバインド可能ではないため、これを修正するためにAttachedPropertiesを作成しました(1つはバインドをアクティブ化し、もう1つは実際のパスワードを保持します)。問題は、それらがバインドされないことです(GetBindingExpressionはnullを返します)。
また:
- AttachedPropertiesは機能します。PasswordBoxに入力すると、PasswordとPasswordValue(添付のprop)は正しく設定されますが、User.Passwordは空のままです。
- AttachedPropertyのバインドも機能しますが、その逆です。PasswordValueをTextBlockにバインドすると(TextBlock.Textがターゲット、helper:PasswordValueがソース)、機能します。Userのプロパティは依存関係オブジェクトではないため、これを使用できないのは私だけです。
- User.Passwordはバインド可能であり(ユーザーはINotifyPropertyChangedを実装します)、User.UsernameをTextBox.Textにバインドすることができました(ユーザー名とパスワードは同様の文字列プロパティです)
AttachedPropertiesは次のとおりです。
そして、バインディングを含むXAML部分:
silverlight - DataGridColumnのDataGridを検索します
DataGrid
与えられたのを取得するにはどうすればよいですかDataGridColumn
。DataGrid
に適用されるサブクラスに添付プロパティを作成しましたDataGridColumn
(サブクラス化していません)。添付プロパティを適用する対象が表示されますが、参照自体DataGridColumn
を取得するにはどうすればよいですか?DataGrid
両方必要です。
編集:
私がもっと興味を持っているのは、アタッチされたプロパティのイベントハンドラーで、アタッチされたプロパティDependencyObject
を実際にホストしているインスタンスを取得する方法です。つまり、そのDataGrid
代わりにDataGridColumn
プロパティも添付されます。
次に、添付プロパティのメタデータにOnSingleClickEditPropertyChanged
として登録されている静的ハンドラーがあります。PropertyChangedCallback
SingleClickEditProperty
そのプロパティが呼び出されると(id estプロパティが列で変更された場合) 、インスタンスDataGridTextColumn
が必要なときに、が与えられます。MvvmDataGrid
wpf - WPFがグリッドでの配置などにアタッチされたプロパティを使用するのはなぜですか?
なぜ「添付プロパティ」が必要なのですか?特定のDependencyObjectにさえ存在しないプロパティの値を設定できる可能性があるため(そしてそれらは黙って無視されるだけです)、その概念は私を少し悩ませます。問題を探す解決策のように思えます。たとえば、HTMLが行うことを実行し、親要素に子の配置などを明示的に決定させるのはなぜですか。
つまり、次の代わりに:
なぜこのようなものではないのですか(HTMLの<tr>
およびと同等):<td>
おそらくグリッドは単なる悪い例であり、アタッチされたプロパティは他のコンテキストでより意味がありますか?それとも私は何かを完全に見逃していますか?
c# - registerattachedDependencyプロパティのヘルプ
から継承する独自のDataGridコントロールを作成しましたDataGrid
。列レベルで使用する依存関係プロパティを宣言したので、PreviewKeyDownイベントで値を確認し、この現在のセルを処理する必要があるかどうかを判断します。
私のXAMLは次のようになります。
しかし、この依存関係プロパティを列レベルで使用できるようにすることには、実際の問題があります。私がやろうとしていることは、と同じGrid.Column
です。誰かがそれを手伝ってくれますか?
wpf - 継承による添付プロパティのスタイリング
私の質問はこれに似ています: WPF Style with no target type? しかし問題は、私のものが添付プロパティであることです:
私の目標は、形状から派生するすべてのオブジェクトには、値を持つ Zommable.Unscale プロパティが添付されている必要がありますが、その方法が見つかりません。ありがとう !
wpf - データテンプレート内に配置されたときに、BindingExpressionタイプの添付プロパティが評価されないのはなぜですか?
バインディングをキャッチして複数のプロパティに複製できるようにするために、BindingExpressionタイプのSelectorにアタッチされたプロパティを定義しました。アタッチされたプロパティは、セレクターがXAMLで直接定義されている場合に正常に機能します。ただし、SelectorがDataTemplate内で定義されている場合、プロパティ変更ハンドラーは起動されません。
付属物件
使用法(有効)
使用法(無効)
Snoopを使用してプロパティを評価すると、プロパティが自動的に更新されて機能し始めることがわかったため、タイミングの問題のようです。
ヘルプや説明をいただければ幸いです。:)
c# - TextBox がフォーカスを取得したときの Caliburn Message.Attach に関するヘルプが必要
ビューモデルのプロパティにバインドされた添付プロパティを使用してフォーカスを設定している TextBox があります。添付プロパティは「UIElement.Focus()」を呼び出してフォーカスを設定します。問題は、TextBox がこの方法でフォーカスを受け取ると、"GotFocus" イベントが発生しないことです。イベントを処理するために Caliburn.Micro の Message.Attach を使用しています。何か案は?
ここにテキストボックスがあります。
これが添付プロパティです(SOにあります)。
c# - ObjectContext を DataContext からカスタム添付プロパティにバインドできません
プロパティを添付しました
また、正しい ObjectContext に設定された Context プロパティを持つ ViewModel もあります (デバッガーでチェック)。
そして、この XAML コード:
local は私の名前空間です。
IsFilterableGrid の変更されたイベント (接続された動作) でこのコードを使用して、オブジェクト コンテキストを取得します。
そして、コンテキスト変数は常に null になります。グリッドの DataContext は null ではなく、正しいオブジェクト (ViewModel) を指していますが。
何か案は?これで正気を失いそうです…
編集:もう少し調査しましたが、バインドするlocal:FilterableGrid.IsFilterableGrid="{Binding IsFilterable}"
と完全に機能します。しかし、local:FilterableGrid.ObjectContext="{Binding Context}"
そうではありません!渡される値の型と何か関係があるのかもしれません (プリミティブ型である文字列の代わりに ObjectContext または bool と言いますか?)。
wpf - WPFキャンバスの子に添付された上/下/左/右プロパティを削除するにはどうすればよいですか?
おそらくここで単純なものが欠けているのでしょうが、キャンバスに含まれるアイテムから添付プロパティを削除する方法が見つかりません。
コード例:
Top 添付プロパティは Bottom 添付プロパティよりも優先されるため、これは機能しません。そのため、一番上の添付プロパティを「設定解除」しようとします
...そしてコンパイラは、UnsetValue を double に変換できないと不平を言います。
ここで何が欠けていますか? Top 添付プロパティを削除するにはどうすればよいですか?