2010-03-03 9 views
4

Ok les gars,wpf statique liaison question

J'ai un sérieux problème avec cela.

J'ai une classe statique avec des propriétés statiques fournissant des couleurs comme une chaîne hexagonale:

namespace com.myCom.Views 
{ 
public static class MyColorTable 
{ 
    private const string _Hex0 = "#FFFFFFFF"; 
    private const string _Hex1 = "#FFE5E5E5"; 

    public static String Hex0 
    { 
     get { return _Hex0; } 
    } 

    public static String Hex1 
    { 
     get { return _Hex1; } 
    } 
} 
} 

Maintenant, je veux lier ces couleurs à un UserControl via XAML, comme ceci:

<UserControl x:Class="com.testing.MyTestClass" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Height="53" Width="800" 
FocusVisualStyle="{x:Null}"> 
<Grid x:Name="MyGrid" 
Focusable="false" 
FocusManager.IsFocusScope="True" 
Background="{Binding Soure={x:Static MyColorTable}, Path=Hex1}" 
Margin="0,0,0,0" 
FocusVisualStyle="{x:Null}" 
/>> 

Je sais que cela ne fonctionne pas, alors ma question est, comment vais-je faire les choses correctement? Je n'ai pas besoin de liaison bidirectionnelle ni d'événement PropertyChanged, car les couleurs ne seront pas mises à jour une fois l'application démarrée.

Répondre

7

got it:

<UserControl x:Class="com.testing.MyTestClass" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:colors="clr-namespace:com.myCom.Views;assembly=com.myCom" 
      Height="53" Width="800" 
      FocusVisualStyle="{x:Null}"> 
    <Grid x:Name="MyGrid" 
      Focusable="false" 
      FocusManager.IsFocusScope="True" 
      Background="{Binding Source={x:Static Member=colors:MyColorTable.Hex1}}" 
      Margin="0,0,0,0" 
      FocusVisualStyle="{x:Null}"/>