Как привязать к одноэлементному свойству в Silverlight 4?

Всем привет, первый пост здесь :) Начнем с фрагмента кода, который я использую:

public MyClass : INotifyPropertyChanged
{
  private static MyClass _instance;
  public static MyClass Instance
  {
      get
      {
          if (_instance == null)
              _instance = new MyClass();
          return _instance;
      }
  }

  private bool _myProperty;
  public bool MyProperty
  {
      get
      {
        return _myProperty;
      }
      set
      {
          if (_myProperty!= value)
          {
              _myProperty= value;
              NotifyPropertyChanged("MyProperty");
          }
      }
   }

   private MyClass() { ... }
}

Как видите, это одноэлементный класс. На мой взгляд, я хочу привязать элемент управления к MyProperty. Моя первоначальная идея заключалась в том, чтобы импортировать MyClass как статический ресурс, на мой взгляд, используя что-то вроде:

<UserControl x:Class="Metrics.Silverlight.ChartView"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:logic="clr-namespace:Metrics.Logic;assembly=Metrics.Logic">
  <UserControl.Resources>
    <logic:MyClass x:Key="myClass" />
  </UserControl.Resources>
</UserControl>

И связать его так:

<Button Margin="5" Click="btnName_Click"  Visibility="{Binding Source={StaticResource myClass}, Converter={StaticResource visibilityConverter}, Path=MyAttribute, Mode=OneWay}">

Конечно, этот подход не будет работать, поскольку конструктор MyClass является частным. Я также не могу использовать x: static, так как он недоступен в Silverlight 4.

Я застрял в этой проблеме гораздо дольше, чем следовало бы ... Как я могу привязать MyProperty?

Есть идеи?

Заранее спасибо!

9
задан Mathieu 15 March 2011 в 00:15
поделиться