Привязка данных не включена в моем пользовательском свойстве со свойством зависимости - PullRequest
1 голос
/ 08 сентября 2011

Я хочу создать свою собственную Silverlight DLL для добавления в другой проект.

для этого я создаю Silverlight LibraryControl Содержит некоторые textBox и выпадающий список, а также список объектов (наблюдаемый тип коллекции)

Я пытаюсь создать для них объекты типа DependencyProperty.

Теперь я хочу, чтобы в моих вторых проектах я мог заполнить эти свойства привязкой данных, но когда я добавил это в проект, привязка данных и некоторые другие были отключеныиспользовать.

мои коды, как показано ниже

 public static readonly DependencyProperty DPDescription = DependencyProperty.Register("DesCription", typeof(string), typeof(WorkFlowPfazar), new PropertyMetadata(Description_Changed));
    public string Description
    {
        get
        {
            return (string)GetValue(DPDescription);
        }
        set
        {
            SetValue(DPDescription, value);
        }
    }
    private static void Description_Changed(DependencyObject Object, DependencyPropertyChangedEventArgs Args)
    {
        WorkFlowPfazar wf = Object as WorkFlowPfazar;
        if (wf == null)
            return;
        wf.tbDescription.Text = Args.NewValue.ToString();
    }


    public static readonly DependencyProperty DPFormNames = DependencyProperty.Register("FormNames", typeof(ObservableCollection<string>), typeof(WorkFlowPfazar),new PropertyMetadata(FormNames_Change));
    public ObservableCollection <object> FormNames
    {
        get
        {
            return (ObservableCollection<object>)GetValue(DPFormNames);
        }
        set
        {
            SetValue(DPFormNames, (ObservableCollection <object>)value);
        }
    }
    private static void FormNames_Change(DependencyObject Object, DependencyPropertyChangedEventArgs Args)
    {
        WorkFlowPfazar wf = Object as WorkFlowPfazar;
        if (wf == null)
            return;
        wf.cbFormName.ItemsSource = Args.NewValue as ObservableCollection <object>;
    }

есть еще несколько свойств, подобных этим.но я выкладываю Two Ones для простого вопроса.в чем проблема?или что мне делать?

1 Ответ

0 голосов
/ 09 сентября 2011

В Silverlight имеют значение соглашения о кодировании.Поле, которое содержит значение DependencyProperty для свойства, должно просто иметь то же имя, что и свойство, вместе с суффиксом «Свойство».Также имя, переданное методу Register, должно также совпадать с именем свойства.Например, ваше свойство Description должно выглядеть так: -

    public static readonly DependencyProperty DescriptionProperty = 
       DependencyProperty.Register(
          "Description",
          typeof(string),
          typeof(WorkFlowPfazar),
          new PropertyMetadata(Description_Changed));

    public string Description
    {
        get
        {
            return (string)GetValue(DescriptionProperty);
        }
        set
        {
            SetValue(DescriptionProperty, value);
        }
    }

    private static void Description_Changed(DependencyObject Object, DependencyPropertyChangedEventArgs Args)
    {
        WorkFlowPfazar wf = Object as WorkFlowPfazar;
        if (wf == null)
            return;
        wf.tbDescription.Text = Args.NewValue.ToString();
    }
...