これは良い習慣であるか、長期的には何らかのトラブルを引き起こす可能性があるのかどうか疑問に思うだけです。正直言って、私はそれが働いても驚いています - それは仕事をしますが、それが危険なのかどうかはわかりません。依存関係プロパティを隠す
基本的に我々はTextBox
から派生NumericTextBox
を作成し、私たちはテキストからカンマを削除するnew
キーワードでText
プロパティをオーバーライド:私はそれについて好きではない何
public class NumericTextBox : TextBox
{
public new string Text
{
get
{
return base.Text.Replace(",", String.Empty);
}
set
{
base.Text = value;
}
}
}
は、私が知っているということですText
は、依存関係プロパティであり、我々はそれをオーバーライドしているが、意外にも、我々はまだXAMLでそれに特異的に結合することができます。
<this:NumericTextBox x:Name="textBox"
Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=SomeText, Converter={StaticResource debugConverter}}" />
そして、C#で、我々はを呼び出すときにカンマなしの値を取得します。
あなたはどう思いますか?
隠蔽が意図されていた場合、「new」キーワードを使用しないことについて文句を言っています。追加しようとしましたが、例外があります。 Textプロパティなどのために機能するようになりました。 – Carlo
余分な情報をありがとう。しかし、それは良い習慣か、それとも避けなければならないのでしょうか?そしてなぜあなたが知っていれば、それはあまりにも助けになるでしょう。 – Carlo
このコードは正常に動作しますか?ここでは実行時例外が発生します:http://screencast.com/t/EbiYg14f – Carlo