Альтернативный синтаксис в XAML для применения прикрепленного свойства

Как мне переписать следующий XAML:

<Button Command="{Binding NewSalesOrderCommand}" Content="New Order" Width="50" />

Чтобы я мог использовать прикрепленное свойство объекта Command:

<Button Content="New Order" Width="50">
    <Button.Command local:MyClass.MyAttachedProp="1">
        ...
    </Button.Command>
</Button>

означает, что появляется вместо 3 точек?


person dotNET    schedule 11.03.2013    source источник


Ответы (1)


Хм, попробуйте следующее

<Button Content="New Order" Width="50">
    <Button.Command local:MyClass.MyAttachedProp="1">
        <Binding Path="NewSalesOrderCommand" />
    </Button.Command>
</Button>

Для получения дополнительной информации, пожалуйста, посмотрите здесь.

person DHN    schedule 11.03.2013
comment
Выдает ошибку. Невозможно установить свойства для элементов свойств. - person dotNET; 11.03.2013
comment
Вы пробовали без AttachedProperty? - person DHN; 11.03.2013
comment
Работает без прикрепленного имущества. Итак, нет ли здесь способа XAML для применения прикрепленного свойства? - person dotNET; 11.03.2013
comment
Хорошо, позвольте мне взглянуть на реализацию AttachedProperty. Возможно, есть небольшая проблема. - person DHN; 11.03.2013
comment
@dotNET Думая об этом. Нет, вы не можете назначить AttachedProperty таким образом. Вы можете назначить его только конкретному экземпляру класса, но не свойству. Вы можете создать оболочку для команд, которую можно инициализировать в XAML и привязать, например. Команда NewSalesOrderCommand. Но это, кажется, огромные накладные расходы. Возможно, вам стоит пересмотреть свой подход. Каково намерение этого AttachedProperty? - person DHN; 11.03.2013
comment
Небольшая система безопасности на основе ролей, которую я разработал с помощью нескольких прикрепленных свойств. Все элементы настраиваются правильно, кроме кнопок, которые получают состояние IsEnabled из своих команд, даже если вы явно указываете это в стиле. Я смог обойти это, указав значение присоединенного свойства в коде программной части. Большое спасибо за ваши усилия. - person dotNET; 11.03.2013