Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание контрола с дополнительными свойствами 
:(
    Опции темы
makaka
Дата 19.7.2011, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



Нужно агрегировать часто используемую разметку XAML в один контрол. У него нужно создать дополнительные свойства, которых нет в UserControl

У меня такой код:
Код

<UserControl x:Class="ruTender.PriceRangeSelector2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    
    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel Orientation="Horizontal">
            <TextBox Width="100"
                     Text="{TemplateBinding MinPrice}"/>
            <TextBox Width="100"
                     Text="{TemplateBinding MaxPrice}" />
            <ComboBox x:Name="CurrencyCombobox">
            </ComboBox>
        </StackPanel>
    </Grid>
</UserControl>


Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace ruTender {

    [TemplatePart(Name = "MinPrice", Type = typeof(string))]
    [TemplatePart(Name = "MaxPrice", Type = typeof(string))]
    public partial class PriceRangeSelector2 : UserControl {
        public PriceRangeSelector2() {
            InitializeComponent();
        }

        #region Dependency Properties
        public static  DependencyProperty MinPriceProperty =
                        DependencyProperty.Register("MinPrice",
                                         typeof(string),
                                         typeof(PriceRangeSelector2),
                                         new PropertyMetadata("0"));

        public static  DependencyProperty MaxPriceProperty =
                        DependencyProperty.Register("MaxPrice",
                                         typeof(string),
                                         typeof(PriceRangeSelector2),
                                         new PropertyMetadata("0"));
        #endregion

        #region Public Properties
        public string MinPrice {
            get { return (string)GetValue(MinPriceProperty); }
            set { SetValue(MinPriceProperty, value); }
        }

        public string MaxPrice {
            get { return (string)GetValue(MaxPriceProperty); }
            set { SetValue(MaxPriceProperty, value); }
        }
        #endregion
    }
}


При отображении страницы вылезает ошибка XAMLPArseException
и пишется "Не удалось создать "System.Windows.DependencyProperty" на основе текста "MinPrice"."

Что я неправильно сделал?


PS Тот же самый код прекрасно работает, если сделать его в качестве Templated Control
(соответственно XAML разметка выносится в Style)
Но к сожалению использовать Templated Control не очень удобно - мне желательно инициализировать список Combobox из кода c#

В общем я был бы очень признателен за подсказку как в обычном userControl сделать дополнительные свойства

Это сообщение отредактировал(а) makaka - 19.7.2011, 14:58
PM MAIL   Вверх
makaka
Дата 21.7.2011, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



вот так это делается. Просто, даже очень ))

http://forums.silverlight.net/p/22766/232430.aspx
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.