2013-12-24 4 views
1

У меня проблема с привязкой ObservableCollection к LongListSelector, и я не знаю, как это решить. У меня две опорные позиции, а на втором я хочу иметь список любимых банков. Когда я нажимаю кнопку «add_to_favourites», два банка (выбранные в списке Picker с первым элементом поворота) должны добавлять в ObservableCollection, но они не отображаются в пользовательском интерфейсе.Как связать ObservableCollection с LongListSelector?

XAML для LongListSelector является:

</phone:PivotItem> 
     <!--Pivot item two--> 
     <phone:PivotItem Header="Ulubione" Margin="10,0,10,7"> 
      <phone:LongListSelector x:Name ="FavouritesLongList" HorizontalAlignment="Left" Height="531" VerticalAlignment="Top" Width="456" Margin="-251,647,0,-647" LayoutMode="List" IsGroupingEnabled="False" SelectionChanged="Lista_Ulubione_SelectionChanged"> 
       <phone:LongListSelector.ItemTemplate> 
        <DataTemplate> 
         <TextBlock FontSize="35"> 
          <Run Text="{Binding name1}"></Run> 
          <Run Text=" >> "></Run> 
          <Run Text="{Binding name2}"></Run> 
         </TextBlock> 
        </DataTemplate> 
       </phone:LongListSelector.ItemTemplate> 
      </phone:LongListSelector> 
      <!--Double line list no text wrapping--> 
     </phone:PivotItem> 
    </phone:Pivot> 

Теперь, как выглядит мой ObservableCollection:

public partial class MainPage : PhoneApplicationPage 
{ 
    public List<Bank> list = new List<Bank>(); 
    private ObservableCollection<Ulubione> favourites = new ObservableCollection<Ulubione>(); 

    Wynik wy = new Wynik(); 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
     zak.DataContext = wy;//TextBlocks DataContext 
     ban1.DataContext = wy; 
     ban2.DataContext = wy; 
     zle.DataContext = wy; 
     czas.DataContext = wy; 

     DataContext = App.ViewModel; 
     this.Banki1.ItemsSource = list;//Item sources for ListPicker 
     this.Banki2.ItemsSource = list;} 

И моя кнопка add_to_favourites нажмите:

private void addToFavourites(object sender, EventArgs e) 
    { 
     int b1 = this.Bank1.SelectedIndex;//ListPicker selected index of Bank1 
     int b2 = this.Bank2.SelectedIndex;//ListPicker selected index of Bank2 
     String n1 = list[this.Banki1.SelectedIndex].name;//Name od Bank1 from list of banks 
     String n2 = list[this.Banki2.SelectedIndex].name;/Name od Bank2 from list of banks 
     Ulubione fav = new Ulubione(b1, b2, n1, n2); 

     bool ifCanAdd = true; 
     foreach (Ulubione itm in favourites) 
     { 
      if (itm.index1 == b1 && itm.index2 == b2) 
      { 
       MessageBox.Show("This banks are already in favourites"); 
       ifCanAdd = false; 
      } 
     } 
     if (ifCanAdd == true) 
     { 
      favourites.Add(fav); 
      MessageBox.Show("Added to favourites"); 
      FavouritesLongList.ItemsSource = favourites; 
     } 
    } 

Пожалуйста, помогите мне, как связать это ObservableCollection to LongListSelector и обновлять пользовательский интерфейс каждый раз, когда я добавляю что-то к t o коллекция.

+0

Что такое имя1 и имя2 в привязке? Являются ли эти свойства Улубионе? Вы можете показать Улубионе? Почему вы устанавливаете FavouritesLonglist.ItemsSource каждый раз, когда добавляете элемент? Переместите его сразу за этим. Banki2.ItemsSource = list; - нет необходимости устанавливать его каждый раз, поскольку это ObservableCollection – Romasz

+0

Да name1 и name 2 являются значениями Ulubione. Ulubione выглядит так: 'public class Ulubione { public int index1 {get; задавать; } public int index2 {get; задавать; } public String name1 {get; задавать; } public String name2 {get; задавать; } public Ulubione (int i1, int i2, String n1, String n2) { index1 = i1; index2 = i2; name1 = n1; name2 = n2; } } ' – Zygi

+2

Эта маржа =" - 251,647,0, -647 "хорошо? Вы можете что-то увидеть, если вы добавите что-то в избранное после InitializeComponent()? – Romasz

ответ

1

Проблема с запасом, установленным в LLS - Margin = "- 251,647,0, -647". Вот почему вы, вероятно, ничего не видите. С наилучшими пожеланиями и счастливым кодированием.

Смежные вопросы