Autor Beitrag
new.Matrix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: Do 24.04.08 15:10 
Hallo Zusammen...

Habe folgendes Problem:

In einem Hauptfenster werden Pages geladen, welche ich mit dem NavigationService steuere. Nun ist es so, dass ich eine Auswertung mache, die gespeichert und natürlich auch geöffnet werden kann... Nun funktioniert eigentlich alles prima, nur, dass wenn ich eine zweite Datei, die Werte nicht aktualisiert werden, also kann ich nur einmal eine Datei öffnen...

Mein Frame heisst DisplayFrame, über das öffnen Menu steuer ich es so an:
ausblenden C#-Quelltext
1:
DisplayFrame.Navigate(new Uri("PositionResults.xaml", UriKind.RelativeOrAbsolute));					


Wenn ich nun wie gesagt schon eine Auswertung durchgeführt habe oder eine gespeicherte Datei geöffnet habe, kann ich keine weitere mehr öffnen (also ich kann schon und es gibt mir auch keinen Fehler aus, jedoch bleiben die angezeigten Werte gleich. hier die aufgerufende Page:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
   public partial class PositionResults : PageFunction<String>
    {
        EvaluatedRanking Ranked = (EvaluatedRanking)Application.Current.Properties["RankResults"];

        SerializableDictionary<int, ShopRanking> shopRank = new SerializableDictionary<int, ShopRanking>();

        ShopRanking shopValues = new ShopRanking();



        public PositionResults()
        {
            InitializeComponent();
            
        }

        #region Eventhandling
        void PositionResults_Loaded(object sender, RoutedEventArgs e)
        {
            
            foreach (KeyValuePair<string, SerializableDictionary<int, ShopRanking>> kvp in Ranked.GetRankings())
            {
                cbxRankingResults.Items.Add(kvp.Key);

            }
            
        }

        void cbxRankingResults_Changed(object sender, RoutedEventArgs e)
        {

            if (Ranked.GetRankings().TryGetValue(cbxRankingResults.SelectedValue.ToString(), out shopRank))
            {

                
                ObjectDataProvider providerPosition = (ObjectDataProvider)FindResource("DatenPosition");
                ObjectDataProvider providerRangliste = (ObjectDataProvider)FindResource("DatenRangliste");

                List<ShopRanking> shopList = new List<ShopRanking>();
                List<ShopRanking> shopPosition = new List<ShopRanking>();

                for (int i = 1; i < 4; i++)
                {
                    shopRank.TryGetValue(i, out shopValues);
                    shopList.Add(shopValues);
                }
  
                providerRangliste.ObjectInstance = shopList;

                for (int i = 1; i <= shopRank.Count(); i++)
                {
                    shopRank.TryGetValue(i, out shopValues);
                    if (shopValues.Haendler == 221
                    {
                        shopPosition.Add(shopValues);
                        providerPosition.ObjectInstance = shopPosition;
                        return;
                    }
                }

            }
            else
            {
                Console.WriteLine("Key = \"{0}\" is not found.", cbxRankingResults.SelectedValue);
            }


        }
        #endregion
}


Eigentlich geht es um diem Klasee EvaluatedRanking Ranked, denn diese wird beim öffnen mit neuen Daten gefüllt und um die ComboBox cbxRankingResults, denn diese Zeigt die Ergebnisse an, bleibt aber nach dem öffnen unverändert.

Wie kann ich beim Aufrufen der Page erzwingen, dass er die Methode void PositionResults_Loaded(object sender, RoutedEventArgs e) neu aufruft?