XamlParseException - Неверное значение атрибута (...) для свойства Property - PullRequest
3 голосов
/ 04 августа 2009

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

namespace SilverlightStyleTest
{
    public class AnotherControl: TextBox
    {
        public string MyProperty { get; set; }
    }
}

В том же пространстве имен и проекте я пытаюсь создать стиль с установщиком для MyProperty, например:

<UserControl x:Class="SilverlightStyleTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Local="clr-namespace:SilverlightStyleTest">

    <UserControl.Resources>
        <Style x:Name="AnotherStyle" TargetType="Local:AnotherControl">
            <Setter Property="Width" Value="200"/>
            <Setter Property="MyProperty" Value="Hello."/>
        </Style>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot">
        <Local:AnotherControl Style="{StaticResource AnotherStyle}"/>
    </Grid>
</UserControl>

Я получаю сообщение об ошибке во время выполнения: Неверное значение атрибута MyProperty для свойства Property. [Линия: 9 Позиция: 30]

Я не могу понять, что не так со стилем, чтобы вызвать эту ошибку. Я также попытался «полностью квалифицировать» имя свойства как «Local: AnotherControl.MyProperty», но это тоже не сработало.

1 Ответ

4 голосов
/ 04 августа 2009

Свойства не зависимостей нельзя установить в стилях .

Вам необходимо определить его как DependencyProperty:

public static readonly DependencyProperty MyPropertyProperty =
    DependencyProperty.Register("MyProperty", typeof(string), typeof(AnotherTextBox),
        new FrameworkPropertyMetadata((string)null));

public string MyProperty
{
    get { return (string)GetValue(MyPropertyProperty); }
    set { SetValue(MyPropertyProperty, value); }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...