2013-01-02 151 views
0

這是我的問題。我最近創建了一個自定義控件,效果很好。 但我有一個問題,當我使用它,我有一個小問題:自定義WPF控件的默認值

在我的控制,我犯了一個名爲Value屬性,這樣的定義:

public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(int), typeof(NumericUpDown), new PropertyMetadata(1000)); 
    public int Value 
    { 
     get 
     { 
      return (int)GetValue(ValueProperty); 
     } 
     set 
     { 
      SetValue(ValueProperty, value); 
      this.ValueText.Text = value.ToString(); 
     } 
    } 

當我做一個數據綁定到這個值,綁定工作,但默認值設置爲1000,所以它首先打印1000.但實際上,綁定到Value的屬性不等於1000. 我想在ValueText.Text中打印bound屬性的值當Value屬性被創建時。

編輯:問題很簡單,我如何刪除該默認值並直接打印綁定屬性?

+0

我沒有看到一個問號在這混亂的任何地方。 – MyCodeSucks

+0

哦,呃,好吧,很抱歉><(question added) – Kelvyne

回答

1

您應該能夠在DependancyProperties元數據中設置PropertyChanged事件,以在Value更改時更新ValueText

財產以後這樣的:

​​
0

由於事情通過WPF的數據綁定進行更改,屬性設置器不會被調用,所以此技術無法工作。

默認的初始值將始終爲1000,但數據綁定可能會覆蓋它。您需要添加一個Callback以在依賴項屬性值更改時適當地通知您。

有關詳細信息,請參閱Dependency Property Callbacks頁面以瞭解如何正確實施已更改屬性的回調。這是設置其他(ValueText)屬性的適當位置。

+0

謝謝你,這是完美的! – Kelvyne