2012-01-31 1 views
0

Я использую расширение Expander в моей главной странице, которая привязана к коллекции «Категории аккаунта» (каждый элемент в этой коллекции содержит также коллекцию учетных записей)Коллекция Привязка к расширенному представлению не будет обновляться при добавлении новых элементов

Привязки все работают нормально, но с небольшим сбоем. Существует еще одна страница, где пользователь может добавлять новые учетные записи (таким образом, меняя учетные записи & Категории учетных записей) теперь, когда я перехожу на главную страницу, элемент управления Expander не показывает обновленные значения?

Связывание производится на OnNavigatedTo случае главной страницы Файл контекста База данных генерируется Sql Metal инструмент (подробнее об этом здесь Using SQl Metal to generate DB files for wp7)

Это означает, что все мои классы реализуют INotifyChanging & INotifyChangedEvents

Вот XAML & C# код

private WalletDataContext context; 

    private ObservableCollection<AccountCategory> _accountCategories; 
    public ObservableCollection<AccountCategory> AccountCategories 
    { 
     get { return _accountCategories; } 
     set 
     { 
      if (_accountCategories != value) 
      { 
       _accountCategories = value; 
       NotifyPropertyChanged("AccountCategories"); 
      } 
     } 
    } 

public MainPage() 
    { 
     InitializeComponent(); 

     //Initialize Data context 
     context = new WalletDataContext(WalletDataContext.DBConnectionString); 

     //Set page data context 
     this.DataContext = this; 
    } 

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
    { 
     //fetch all existing Account Categories 
     var accountCategoriesInDB = (from AccountCategory acctCat in context.AccountCategory 
            select acctCat); 

     //Update Page Collection 
     AccountCategories = new ObservableCollection<AccountCategory>(accountCategoriesInDB); 

     this.listBox.ItemsSource = AccountCategories; 

     base.OnNavigatedTo(e); 

    } 

Вот XAML привязки

<ListBox Grid.Row="0" x:Name="listBox"> 
        <ListBox.ItemContainerStyle> 
         <Style TargetType="ListBoxItem"> 
          <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
         </Style> 
        </ListBox.ItemContainerStyle> 

        <ListBox.ItemsPanel> 
         <ItemsPanelTemplate> 
          <StackPanel/> 
         </ItemsPanelTemplate> 
        </ListBox.ItemsPanel> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <toolkit:ExpanderView Header="{Binding}" Expander="{Binding}" 
          ItemsSource="{Binding Accounts}" 
          HeaderTemplate="{StaticResource CustomHeaderTemplate}" ExpanderTemplate="{StaticResource CustomExpanderTemplate}"> 
           <toolkit:ExpanderView.ItemTemplate> 
            <DataTemplate> 
             <Grid VerticalAlignment="Center" Height="Auto"> 
              <Grid.RowDefinitions> 
               <RowDefinition Height="0.105*"/> 
               <RowDefinition Height="0.105*"/> 
               <RowDefinition Height="0.789*"/> 
              </Grid.RowDefinitions> 
              <Grid.ColumnDefinitions> 
               <ColumnDefinition Width="0.366*"/> 
               <ColumnDefinition Width="0.634*"/> 
              </Grid.ColumnDefinitions> 

              <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding AccountNumber}" Style="{StaticResource PhoneTextNormalStyle}" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock> 
              <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Balance}" Style="{StaticResource PhoneTextSubtleStyle}" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock> 
             </Grid> 
            </DataTemplate> 
           </toolkit:ExpanderView.ItemTemplate> 
          </toolkit:ExpanderView> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 

Любые идеи о том, что случилось? Спасибо за помощь.

ответ

0

MainPage перезагружает данные из контекста в методе OnNavigatedTo.

Убедитесь, что вы сохранили/пометили обновленные данные в контексте на странице «Добавить новую учетную запись».

+0

«Убедитесь, что вы сохранили/пометили обновленные данные в контексте на странице« Добавить новую учетную запись ». Я сохраняю данные на странице« Добавить новую учетную запись ». Но когда я вернусь на главную страницу, вновь введенная запись просто не видна. – Supreet

+0

Не могли бы вы показать код, который сохраняет данные? –

+0

Ребята, пожалуйста, помогите здесь ... его вид на голове теперь. :(Спасибо – Supreet