Привет всем первым постом здесь :)
Давайте начнем с фрагмента кода, который я использую:
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?
Есть идеи?
Заранее спасибо!