2009-08-06 3 views
0

Ich bin neu bei wpf. Ich schreibe eine Kalendersteuerung. Ich habe eine Standardvorlage in Generic.xaml definiert. Alle Daten werden in einer Listbox angezeigt. Da Listbox in der Vorlage definiert ist, verwende ich FindName(), um auf das Steuerelement zuzugreifen. Das Problem ist, dass ich nicht die Methode aufrufen kann, die das Listenfeld in Konstruktor auffüllt, weil es die Vorlage Kontrolle Zugriff auf (was ich glaube zu diesem Zeitpunkt nicht initialisiert wird. Hier ist der Code, derWie wird das Steuerelement gefüllt, das in der Vorlage mit dem Standardwert verwendet wird?


private void DisplayCurrentMonthContents() 
    { 
     int daysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, CurrentMonth); 
     TextBlock CurrentMonthTextBlock = GetTextBlock(); 
     ListBox DateListBox = (ListBox)Template.FindName("PART_ListBox", this); 

     CurrentMonthTextBlock.Text = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(CurrentMonth); 
     DateListBox.Items.Clear(); 
     for (int counter = 1; counter != daysInMonth; counter++) 
     { 
      DateListBox.Items.Add(counter); 
     } 
    } 

bevölkern

ich glaube, dass ich "es der falsche Weg m nähern. Wie kann ich die Kontrolle zu füllen, die in der Vorlage mit Standardwert verwendet wird?

Antwort

0

es macht nichts. ich habe die Lösung. Setzen sie den Konstruktor nicht verwenden. Überschreiben Sie stattdessen OnApplyTemplate()

Prost.

Verwandte Themen