DataBinding jest wspaniałą cechą Windows Presentation Foundation, która doskonale ułatwia pracę programisty. Lubię często używać klas opartych na wzorcu singleton jako dostępu do "configu" aplikacji. Nie potrzebujemy wielu instancji tego obiektu(różnie z tym bywa, ale o tym może kiedy indziej), więc definiowanie go za każdym staje się zbędne, łatwiej jest pobrać jedną instancję. Problemem naszym jednak jest zbindowanie jakiejś właściwości takowej klasy do np. pola text kontrolki TextBox.
Bindowanie właściwości klasy singleton
Przykładowa klasa:
class Singleton
{
private static Singleton instance
= null
;
private string _url
= "http://mephir.net.pl";
public static Singleton Instance
{
get
{
if (instance
== null)
{
instance
= new Singleton
();
}
return instance
;
}
}
private Singleton
()
{
//nasz konstruktor
}
public string Url
{
get
{
return _url
;
}
set
{
//zapisujemy sobie gdzies ta wlasciwosc, preferuje rejestr, ale to akurat nie ma znaczenia
_url
= value
;
}
}
}
A teraz plik xaml:
<TextBox Name="urlBox" Text="{Binding Source={x:Static local:Singleton.Instance}, Path=Url}"/>
Jeżeli nie chcemy by zmiana zawartości
TextBox'a wpływała na zmianę własciwości, wystarczy do bindowania podać argument
Mode=OneWay.
<TextBox Name="urlBox" Text="{Binding Source={x:Static local:Singleton.Instance}, Path=Url, Mode=OneWay}"/>
Dodaj nową odpowiedź