我已經搜索了關於如何開始使用WPF/silverlight中使用的依賴項屬性,但沒有得到任何關於依賴屬性的想法,任何人都可以告訴我關於它,從初學者的觀點,以便我對此有所瞭解並將其用於我的項目WPF/SilverLight中的依賴項屬性
在此先感謝。
可以任何一個給我簡單的應用程序的鏈接或代碼示例,它以簡單的方式解釋什麼是依賴性屬性是??? 我會非常感謝
我已經搜索了關於如何開始使用WPF/silverlight中使用的依賴項屬性,但沒有得到任何關於依賴屬性的想法,任何人都可以告訴我關於它,從初學者的觀點,以便我對此有所瞭解並將其用於我的項目WPF/SilverLight中的依賴項屬性
在此先感謝。
可以任何一個給我簡單的應用程序的鏈接或代碼示例,它以簡單的方式解釋什麼是依賴性屬性是??? 我會非常感謝
我發現實現一個DependencyProperty通常包括四個部分:
可以使您可以將數據綁定到在用戶控件實例化DataContext的東西依賴屬性添加到用戶控件。例如,您可以將屬性添加到SoUserControl:
#region SampleProperty // Demo for SO 2424526
public static readonly DependencyProperty SamplePropertyProperty
= DependencyProperty.Register("SampleProperty", typeof(int), typeof(SoUserControl), new PropertyMetadata(OnSamplePropertyChanged));
/// <summary>
/// Demo for SO 2424526
/// Gets or sets dependency property.
/// </summary>
public int SampleProperty
{
get { return (int)GetValue(SamplePropertyProperty); }
set { SetValue(SamplePropertyProperty, value); }
}
/// <summary>
/// Handld changes to SamplePropertyProperty by calling a handler in the associated object.
/// </summary>
/// <param name="obj">object the property is associated with</param>
/// <param name="e">details of change</param>
static void OnSamplePropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
(obj as SoUserControl).OnSamplePropertyChanged(e);
}
/// <summary>
/// Handle changes to the SamplePropertyProperty dependency property.
/// </summary>
/// <param name="e">details of change</param>
private void OnSamplePropertyChanged(DependencyPropertyChangedEventArgs e)
{
int SamplePropertyNewValue = (int)e.NewValue;
// do something with the internal logic of the control
}
#endregion
你應該讀一本書,爲初學者。
我已閱讀WPF In Action With Visual Sutdio 2005來自Manning。
作爲剛剛給我的負面標點符號的答案,依賴屬性是名爲WPF的更大規劃的一部分,並且無法理解沒有基礎的依賴屬性。
因此,我認爲試圖只瞭解什麼是依賴屬性是浪費時間,因爲我擔心最終會錯誤地使用它。
此外,MSDN網站有關於WPF和依賴屬性的免費信息。
看一看路易斯·阿布雷烏的博客:http://msmvps.com/blogs/luisabreu/
他有大量的信息有大約dependecy特性以及如何使用它們。
從我的依賴屬性中使用。綁定時它們變得最重要。當綁定來顯示一個常規屬性時,初始綁定將會很好,但是,當屬性發生更改時,UI不會始終更新,在這種情況下,您可以在您的類上實現INotifyPropertyChanged並引發NotifyPropertyChanged事件,但是會依賴於一個Dependency屬性將爲您更新而不實施INotifyProperty已更改。
觸發器是另一個大的。如果你希望創建一個觸發器來觸發一個WPF動畫,只要你的屬性被設置爲一個特定的值......那麼你需要觸發一個依賴屬性。
DepenedencyProperties只能在派生自DependencyObject的類型上實現。 UIElement派生自Visual,派生自DependencyObject,因此.Net控件的大多數屬性都是依賴項屬性。當創建並註冊我自己的DependencyProperties時,它通常位於我自定義的UserControls上,就像從UIElement繼承的一樣。
這對我來說非常令人沮喪,當我第一次嘗試對我的普通班的一個創建一個依賴屬性(你最好不要使用INotifyPropertyChanged的位置)
鏈接: http://msdn.microsoft.com/en-us/library/ms752914.aspx,http://www.wpftutorial.net/DependencyProperties.html
我認爲您可以將它與關鍵字yield進行比較。它允許你生成一個懶惰列表或一個無限生成器。 每次需要從該列表中請求一個項目時,代碼會繼續執行該流程。
依賴屬性對於值或內容是相同的想法。它會根據它所依賴的其他值來懶惰地計算所需價值。 它可以緩存該值,並且當底層部分是「髒」的時候,即某些東西發生了變化,它會傳播 - 無效 - 所有依賴它的層次。
對象需要具備的DependencyObject的參與設施(也就是,所以發動機會了解它,把它介紹給鏈條。)
機制是通用的,不固定的,沒有隻需一個界面即可遵守。 但它比我說的要複雜一些。
我找到了一個很好的解釋,接線我的理解,在下面的博客文章: http://blog.hackedbrain.com/2004/12/04/understanding-dependencyobject-and-dependencyproperty/
感謝您的時間和答案,這是真正需要的,一個想我要問你,是它是如何知道值已更改並傳遞給控件以顯示已更改的值的。 再次感謝 – 2010-03-13 05:42:52