2017-02-17 21 views
0

データや他のトリガを使用してXAMLでこれを実現したいですか? costpriceはNumericUpDownコントロールであるC#またはIValueConverters他にもXAMLのより大きい、より小さい値などがある場合はWPF?

を使用せずに

。 私はcontrol.Butの最大のプロパティを設定しようとしていましたが、どのように私は条件を超えて与えることができますか?

サイドがBuyの場合、CostPriceはSellPriceより小さくなければなりません。 側が売りであれば、CostPriceはSellPrice

が、私はそれがC#やコンバータなしで可能だとは思わない

<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

Convertersを避けることは誤った考えのように聞こえます。重要なのは、ビジネスロジックに緊密に結合されていないが、さまざまな状況で範囲に対して再利用できるRangeToBooleanコンバータを開発することです。 – grek40

答えて

0

の下に表示のようなものを試してみましたよりも大きくなければなりません。 しかし、 "QuickConverter"(NuGetで利用可能)を使用して、xamlにインラインC#コードを書くことができます。
あなたが興味を持っている場合:QuickConverter tutorial

+0

@Tesseractに感謝します。 – KrishOnline

2

がどのように私はより大きく、条件未満与えることができますか?

コンバーターなしでできるかどうか尋ねたところですが、

「より小さい」または「より大きい」演算子が定義されていないため、純粋なXAMLではこれを行うことはできません。

XAMLは、マークアップ言語であり、プログラミング言語ではありませんので、コンバータを使用する必要があります。

それとも、値が実際よりも大きいまたはいくつかの他のプロパティよりも小さいかどうかを決定するブール値を返しますSideオブジェクトに別の読み取り専用のプロパティを追加することができます。私はこのことを考えていない

public bool IsSmaller { get { return Code < Buy; } } 
関連する問題