J'ai trouvé le moyen de faire fonctionner le binding pour les carrés de couleur sans utiliser de code behind : Modif dans PaletteTabView.xaml :
<Rectangle Grid.Column="0" Margin="3" VerticalAlignment="Stretch"
Width="{Binding Path=ActualHeight, RelativeSource={RelativeSource Self}}"
Stroke="Black" StrokeThickness="0.5"
Fill="{Binding Color, Converter={StaticResource colorConverter}}"/>
Et le LayerColorConverter modifié : using System; using System.ComponentModel; using System.Globalization; using System.Windows.Data; using System.Windows.Media; namespace AcadUISample.PaletteWpf { /// <summary> /// Fournit la méthode de conversion pour obtenir la couleur du calque /// </summary> [ValueConversion(typeof(Autodesk.AutoCAD.Colors.Color), typeof(SolidColorBrush))] class LayerColorConverter : IValueConverter { /// <summary> /// Convertit une couleur Autodesk.AutoCAD.Colors.Color en SolidColorBrush /// </summary> /// <param name="value">Couleur Autodesk.AutoCAD.Colors.Color à convertir.</param> /// <param name="targetType">Type SolidColorBrush</param> /// <param name="parameter">Non utilisé.</param> /// <param name="culture">Non utilisé.</param> /// <returns>Instance de SolidColorBrush représentant la couleur du calque.</returns> public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value != null && value is Autodesk.AutoCAD.Colors.Color) { var acadColor = (Autodesk.AutoCAD.Colors.Color)value; var drawingColor = acadColor.ColorValue; var mediaColor = Color.FromRgb(drawingColor.R, drawingColor.G, drawingColor.B); return new SolidColorBrush(mediaColor); } return null; } /// <summary> /// Méthode de conversion inverse non utilisée. /// </summary> /// <returns>Toujours null</returns> public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } } } [/Code] Du coup moins de code behind dans PaletteTabView.xaml.cs : [Code] using System.Windows.Controls; namespace AcadUISample.PaletteWpf { /// <summary> /// Logique d'interaction pour PaletteTabView.xaml /// </summary> public partial class PaletteTabView : UserControl { public PaletteTabView() { InitializeComponent(); // définit la liaison de données avec la partie ViewModel var vm = new PaletteTabViewModel(); DataContext = vm; } } } [/Code] ;)