Podążałem za tutorialem na temat obiektu zależności: tutaj: http://tech.pro/tutorial/745/wpf-tutorial-introduction-to-dependency-propertiesJak jest używana klasa dziedzicząca DependencyObject?
Jednak nadal jestem nieco zdezorientowany. I stworzył następujące klasy, która jest wyłącznie dla własnych celów uczenia się i nie ma realnego wykorzystania:
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;
}
}
}
kilka pytań:
- Dlaczego jest właściwość statyczna? Nie w pełni rozumiem, czy ma to na celu zapisanie wartości na poziomie obiektu.
- Co robi wywołanie zwrotne Coerce i dlaczego jest uwzględnione?
- Jaki jest cel mojej klasy i gdzie powinienem jej użyć?
Więc nie ma naprawdę pożytku z używania DependencyProperties w ogólnym projektowaniu komputerów i aplikacji mobilnych przy użyciu WPF? Kiedy najprawdopodobniej będę ich potrzebować? –
To dość szerokie pytanie, które opisałem w mojej odpowiedzi na # 3. – user7116