开发者

Create UserControl DependencyProperty of which value can be chosen in dropdown list (as combo box)

开发者 https://www.devze.com 2022-12-23 21:31 出处:网络
I\'m a starter at WPF, now i would like to make a WPF userControl library which include a Rating bar userControl. All the steps of creating the rating Bar has been done, however i would like to add a

I'm a starter at WPF, now i would like to make a WPF userControl library which include a Rating bar userControl. All the steps of creating the rating Bar has been done, however i would like to add a property RatingValue:

public static readonly DependencyProperty RatingValueProperty =
            DependencyProperty.Register("RatingValue", typeof(int), typeof(RatingControl),
            new FrameworkPropertyMetadata(0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(RatingValueChanged)));

public int RatingValue
        {
            get { return (int)GetValue(RatingValueProperty); }
            set
  开发者_如何学Go          {               
                SetValue(RatingValueProperty, value);                
            }
        }

private static void RatingValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
         //... change the rating value
        }

that the user of my UserControl can modify by a value from 0 to 5 that are shown in a dropdown list (combo box) in the Properties windows (as some exist properties of Usercontrols like Visibility, windows style, background ...)

How can i do? Thank you very much in advance,

Viet


  1. Create a class derived from TypeConverter.
  2. Override GetStandardValues and GetStandardValuesSupported (and optionally GetStandardValuesExclusive).
  3. From GetStandardValues, return a collection containing the values you want to appear in the combo box.
  4. Apply TypeConverterAttribute to the RatingValue property, specifying the type of your type converter.

Alternatively, depending on the semantics of RatingValue, you might consider making it an enum. This feels a bit weird because the values are numeric -- but it would have the advantage of constraining the values at a type level, and it would automatically give you a combo box with no need for you to implement a type converter.

0

精彩评论

暂无评论...
验证码 换一张
取 消