2017-02-17 4 views
0

Я хочу добиться чего-то подобного в XAML, используя данные или любые другие триггеры?WPF if else like more and less thanValidation в XAML?

Без использования C# или IValueConverters

, где costprice является контроль NumericUpDown. Итак, я пытался установить максимальное свойство элемента управления. Но я не имею ни малейшего представления о том, как я могу дать больше и меньше условий?

Если сторона покупает, то CostPrice должна быть меньше SellPrice. Если сторона продажи, то CostPrice должно быть больше, чем SellPrice

Пытались что-то, как показано ниже

<DataTrigger Binding="{Binding Path=Side.Code,ConverterParameter={x:Static i:SideCodes.Buy}, Converter={StaticResource EqualsConverter},UpdateSourceTrigger=PropertyChanged}" Value="True"> 
            <Setter Property="Maximum" Value="{Binding Path=Price.Value}"></Setter> 
           </DataTrigger> 
+3

Я не думаю, что это возможно без 'IValueConverter' – FiN

+2

« Без использования C# или IValueConverters », почему? –

+0

Избегание преобразователей звучит как ошибочная идея. Важной частью будет разработка своего рода конвертера RangeToBoolean, который не будет тесно связан с вашей бизнес-логикой, но может использоваться повторно для диапазонов во многих разных обстоятельствах. – grek40

ответ

0

Я не думаю, что это возможно без C# или конвертеры. Однако вы можете написать встроенный код C# в своем xaml, используя «QuickConverter» (доступно на NuGet).
Если вы заинтересованы: QuickConverter tutorial

+0

спасибо @Tesseract. – KrishOnline

2

Как я могу дать больше и меньше, чем условия?

Я просто спросил, можно ли обойтись без конвертеров?

Нет, вы не можете сделать это в чистом XAML, потому что не определено операторов «меньше» или «больше».

XAML - это разметка язык, а не язык программирования, поэтому вы должны использовать конвертер.

Или вы могли бы добавить еще свойство только для чтения к Side объекта, который возвращает логическое значение, которое определяет, является ли на самом деле больше или меньше, чем какой-либо другой собственности значение:

public bool IsSmaller { get { return Code < Buy; } }