Помогите! Привязка данных не работает в Silverlight на Mac - PullRequest
0 голосов
/ 06 апреля 2009

Я написал небольшой апплет в Silverlight и, хотя он отлично работает в Windows, кажется, что в OSX часть приложения, связывающая данные (все эти NotifyPropertyChanged вызовы), не работает. Кто-нибудь знает, почему это? Я пробовал под Firefox и Safari с последней установленной загрузкой 2.0.

Ответы [ 2 ]

1 голос
/ 21 апреля 2009

Ваше использование экземпляра объекта модели в Page сразу показалось мне странным. Это не совсем неправильно, но необычно для меня. Некоторые эксперименты привели меня к рабочему решению, хотя я и не знал причину ошибки, которая произошла в первую очередь. Немногие люди создают экземпляры объектов непосредственно в назначении DataContext, поэтому, вероятно, это не очень известный (и исправленный!) Дефект.

  1. Удалить базовый класс DependencyObject из MyModel.
  2. Сделайте экземпляр MyModel ресурсом Page, а не создайте его экземпляр непосредственно в DataContext.
  3. Измените обработчик события Button_Click для загрузки ресурса вместо именованного дочернего объекта Page.
  4. Все готово!

Ниже приведены фрагменты кода для рабочего решения.

Page.xaml

<UserControl.Resources>
    <my:MyModel x:Key="TheModel"/>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource TheModel}">

Page.xaml.cs

private void Button_Click(object sender, RoutedEventArgs e)
{
    ((MyModel)Resources["TheModel"]).BeginUpdateBitmap();
}

MyModel.cs

public sealed class MyModel : INotifyPropertyChanged
{

Пожалуйста, также включите исходный код с вашим вопросом в будущем. Это сделало бы это немного проще.

1 голос
/ 20 апреля 2009

Вы пытались использовать remote sliverlight отладку для Mac? Я ожидаю, что настройка отладчика и включение исключений 1-го шанса поможет вам показать проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...