2014-09-03 51 views
0

我爲組件創建了一個新屬性。我如何限制這個屬性的值(並且在用戶選擇這些值時顯示給用戶)?例如,一個只能取值12,13和15的屬性(int)XPTO?謝謝!設置依賴屬性的可能值範圍

+1

綁定含(12,13和15)的組合框的ItemsSource – Selva 2014-09-03 11:33:36

+0

列表中是否有辦法在代碼中做到這一點?例如,該屬性的定義是: 公共靜態只讀的DependencyProperty XPTOProperty = DependencyProperty.Register( 「XPTO」 的typeof(INT), typeof運算(ResponsiveRowIpiranga),新UIPropertyMetadata(10)); – user3952846 2014-09-03 11:46:16

+0

默認值是10.但我想限制可能的值爲10,12,13和15。 – user3952846 2014-09-03 11:47:26

回答

1

您需要使用value coercion

public static readonly DependencyProperty XPTOProperty = 
    DependencyProperty.Register("XPTO", typeof(int), typeof(ResponsiveRowIpiranga), 
     new UIPropertyMetadata(10, XPTOPropertyChangedCallback, XPTOCoerceValueCallback)); 

private static object XPTOCoerceValueCallback(DependencyObject d, object basevalue) 
{ 
    var sender = (ResponsiveRowIpiranga)d; 

    var value = sender.XPTO; 
    if (value != 10 || value != 12 || value != 13 || value != 15) 
    { 
     value = 10; 
    } 

    return value; 
}