Привязка текстового поля ccontrol Silverlight к контексту домена, определенному как статический ресурс - PullRequest
0 голосов
/ 14 июля 2010

Я определил контекст домена как пользовательский ресурс

<UserControl.Resources>
    <my:ParkDomainContext x:Key="parkDomainContext" />
</UserControl.Resources>

Я ограничил результат запроса таблицы этим контекстом домена в моем коде

_parkDomainContext = this.Resources["parkDomainContext"] as ParkDomainContext;
_parkDomainContext.Load(_parkDomainContext.GetLocationsQuery(), LoadLocationComplete, null);
_parkDomainContext.Load(_parkDomainContext.GetParksQuery(), LoadParkComplete, null);

После этого я связал статический контекст домена с полем со списком следующим образом

<ComboBox x:Name="cboLocation" Grid.Column="1" Grid.Row="1"  
          ItemsSource="{Binding Path=Locations, Source={StaticResource parkDomainContext}}"
          SelectedItem="{Binding Path=Locations, Mode=TwoWay}"
          DisplayMemberPath="ParkLocation"
    />

Работает нормально, но когда я связываю тот же контекст домена с текстовым полем следующим образом:

<TextBox Grid.Column="1" Grid.Row="0" Height="23" HorizontalAlignment="Left" Margin="3" Name="locationIDTextBox"
         VerticalAlignment="Center" Width="120"
         Text="{Binding Source={StaticResource parkDomainContext}, Path=Locations.ParkLocation}" >

Это не показывает мне никакого результата.

Я знаю, что у контекста моего домена есть результат запроса, и должно быть что-то не так в привязке его к Textbox.

Пожалуйста, дайте мне знать решение ..

1 Ответ

0 голосов
/ 14 июля 2010

Вы должны иметь где-нибудь переменную, содержащую текущее местоположение и привязать текстовое поле к нему.Вместо этого у вас есть привязка ComboBox.SelectedItem к списку местоположений (что не будет работать).

Отредактировано после комментария OP: Добавить к <UserControl.Resources>

<my:Location x:Key="currentLocation" />

Затем измените ComboBox на:

SelectedItem="{Binding Source={StaticResource currentLocation}, Mode=TwoWay}"

Затем TextBox:

Text={Binding Source={StaticResource currentLocation}, Mode=TwoWay}"

Примечания:

  1. Пожалуйста, измените имя типа и пространство имен Location наВаш фактический тип
  2. Это не очень рекомендуемый способ делать вещи.Обычно у вас есть класс с необходимыми свойствами для вашего XAML, и для DataContext вашего UserControl (или Window) задается экземпляр этого класса.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...