私はここから依存オブジェクトについてのチュートリアルに従っていました:http://tech.pro/tutorial/745/wpf-tutorial-introduction-to-dependency-propertiesDependencyObjectを継承するクラスはどのように使用されますか?
まだ、私はまだ少し混乱しています。
namespace DPTest
{
class Audio : DependencyObject
{
public static readonly DependencyProperty fileTypeProperty = DependencyProperty.Register("fileType", typeof(String), typeof(Audio),
new PropertyMetadata("No File Type", fileTypeChangedCallback, fileTypeCoerceCallback), fileTypeValidationCallback);
public String fileType
{
get
{
return (String)GetValue(fileTypeProperty);
}
set
{
SetValue(fileTypeProperty, value);
}
}
private static void fileTypeChangedCallback(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
Console.WriteLine(e.OldValue + " - " + e.NewValue);
}
private static object fileTypeCoerceCallback(DependencyObject obj, object o)
{
String s = o as String;
if (s.Length > 0)
{
s = s.Substring(0, 8);
}
return s;
}
private static bool fileTypeValidationCallback(object value)
{
return value != null;
}
}
}
いくつかの質問:
- なぜプロパティは静的である私は自分の学習の目的のために純粋で、本当の用法を持っていない、次のクラスを作成しましたか?オブジェクトレベルで値を格納するのかどうかは完全にはわかりません。
- Coerceコールバックは何を行い、なぜそれが含まれていますか?
- 私のクラスの目的は何ですか?どこで使うのですか?
したがって、WPFを使用する一般的なデスクトップおよびモバイルアプリケーション開発でDependencyPropertiesを使用するための実際の使用はありません。私はいつそれらを使う必要がありますか? –
これはかなり広い質問ですが、#3の答えで概説しました。 – user7116