2011-01-30 15 views

答えて

0

最も簡単な方法は、文字列値を返しますEmployeeでプロパティを実装して、スタイルのデータトリガーに文字列値をテストすることです。例えば:

public string SalaryRange 
{ 
    get 
    { 
     if (salary <= LowRange) 
     { 
     return "Low"; 
     } 
     if (salary <= MiddleRange) 
     { 
     return "Middle"; 
     } 
     return "High"; 
    } 
} 

次に、XAMLで、例えば、データ・トリガーを使用してスタイルを実装:

<Style TargetType = "ListBoxItem"> 
    <Style.Triggers> 
     <DataTrigger Binding="{SalaryRange}" Value="Low"> 
     <Setter Property="Foreground" Value="AliceBlue"/> 
     </DataTrigger> 
     <DataTrigger Binding="{SalaryRange}" Value="Middle"> 
     <Setter Property="Foreground" Value="Fucschia"/> 
     </DataTrigger> 
     <DataTrigger Binding="{SalaryRange}" Value="Middle"> 
     <Setter Property="Foreground" Value="Goldenrod"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

多くの人が値コンバータについて学び、使用してのアイデアを、すべてが夢中取得この種のもののためのそれら。 MVVMを使用している場合は、上記は本当にきれいです:プロパティが何をしているのかはっきりしています。スタイルは何か、テストは簡単です。すべての翻訳を行っている別のファイル。

+0

他のプロジェクトでEmployeeクラスを実装しています。 – Gilboss

+0

これは、MVVMパターンを使用する理由です。 'Employee'のインスタンスをラップするWPFプロジェクトに' EmployeeViewModel'を実装すると、UIビューに必要なプロパティでそれを飾ることができます。 –

+0

しかし、他のプロジェクトで宣言している場合は? – Gilboss

関連する問題