私はアタッチされたプロパティで作業していて興味深い理論的な質問がありました。私はXAMLを介して結合しているプロパティを設定したい場合は、私はフォーマットを使用することを知っている:サブクラスがアタッチするアタッチされたプロパティの接頭辞は何ですか
<control ownerClass.propertyName="some value"/>
私の質問は、私が「ownerClass」からクラスを派生するとどうなるか、です。例えば、私は以下のクラスを定義した場合、:
<MyGrid>
<Button MyGrid.Row = "0">Bla Bla</Button>
</MyGrid>
を次のように
class MyGrid : Grid {
}
はXAMLを通してそれを設定しようとしましたが、インテリセンスは私を聞かせていませんでした。添付されたプロパティで適切な名前空間を使用すると、それは機能しました。
はまた、それは私がこれを行うには許可:
<MyGrid>
<Button Grid.Row = "0">Bla Bla</Button>
</MyGrid>
行添付プロパティは、グリッドクラスの静的メンバーであり、それによって定義されていたので、それは、もちろん、理にかなっています。ここでの唯一の問題は、新しいクラスのユーザーがグリッドから派生したことを知り、この特定のプロパティが祖先によって定義されていることです。私には、これは私のクラスのユーザーに公開したくない実装の詳細なようです。
WPFを取得する方法はありますか実際にこの添付プロパティがスーパークラスによって定義されていたことを非表示にしますか?
おかげで、
コビ
でこれを試してみました(そのためのthnx、Meleak)元の問題を解決しているが、実装の詳細を「非表示」にする方法がある場合、私はまだ疑問に思ってユーザーがスーパークラス接頭辞を使用して接続プロパティにアクセスすることを許可しません。将来、Gridクラスをスーパークラスとして使用しないように実装を変更する場合でも、同じように動作するはずですので、ユーザーがこのクラスが継承されたという事実にさらされないようにしたいと考えています。グリッドクラス。 –
IntellisenceからGrid.Rowを非表示にしたいのですか、またはGrid.Rowの機能を無効にしたいのですか? –