Я новичок в Silverlight и у меня проблема с привязкой.
У меня есть класс ItemsManager, который имеет внутри своей области другой класс Item.
class ItemsManager
{
...
class Item : INotifyPropertyChanged
{
...
private BitmapImage bitmapSource;
public BitmapImage BitmapSource
{
get { return bitmapSource; }
set
{
bitmapSource = value;
if(PropertyChanged != null )PropertyChanged("BitmapSource")
}
}
}
}
Я делаю следующее в коде для проверки привязки:
{
ItemsManager.Instance.AddItem("123");
//Items manager started downloading item visual
//part (in my case bitmap image png)
Binding b = new Binding("Source");
b.Source = ItemsManager.Instance.GetItem("123").BitmapSource;
b.BindsDirectlyToSource = true;
Image img = new Image();
img.SetBinding(Image.SourceProperty, b);
img.Width = (double)100.0;
img.Height = (double)100.0;
LayoutRoot.Children.Add(img);
}
После загрузки изображения оно не появляется. Хотя, если я установлю непосредственно после того, как изображение будет загружено, его источник будет хорошо отображаться.
Я также заметил, что PropertyChanged («BitmapSource») никогда не срабатывает, потому что PropertyChanged имеет значение null, как Image, никогда не привязанное к нему.
Я с нетерпением жду вашего ответа!