Jak rozbudowac Calendar.Appoitment o 2 dodatkowe pola?

0

Mam taka potrzebe aby do klasy Appoitment (z Calendar) dodac dwa pola. Chodzi o to zebym mogl do owych appoitmentow dolaczac jeszcze informacje w 2 polach. Musi to byc klasa appoitment gdyz pewna kontrolka musi otrzymac dane tego wlasnie typu.
Jak to zrobic???

0

Jakiej jest przestrzeni nazw ta klasa?

0

Zdefiniować swoją klasę dziedziczącą po tym Appointment?

0

generalnie to jest M$ klasa Calendar.Appoitment
(przestrzen Calendar)
ale to w sumie jest bez znaczenia po prostu nie wiem jak ja rozszerzyc (kazda inna powiedzmy "superklase") o dodatkowe pola (nie metody).
Nie moge zrobic klasy potomnej bo pewien komponent przyjmuje jako parametr jedynie typ Appoitment.

0
loocaszek napisał(a)

Nie moge zrobic klasy potomnej bo pewien komponent przyjmuje jako parametr jedynie typ Appoitment.

Przyjmuje Appointment, a nie przyjmie obiektu klasy dziedziczącej? Chciałbym to zobaczyć. ;]

0
 
private void dayViewPlan_ResolveAppointments(object sender, ResolveAppointmentsEventArgs args)
        {
            List<Appointment> m_Apps = new List<Appointment>();

            foreach (Appointment m_App in m_Appointments)
                if ((m_App.StartDate >= args.StartDate) &&
                    (m_App.StartDate <= args.EndDate))
                    m_Apps.Add(m_App);
            
            args.Appointments = m_Apps;

args.Appoitments = lista obiektow typu appoitment inaczej sie wywala bledem incompatible

oczywiscie probowalem z lista obiektow typu klasa potomna od appoitment... :-)

0

Nie mogę znaleźć jakoś tego Appointment na msdn - definicji klasy. Jeżeli nie jest sealed to spokojnie przejdzie coś takiego:

class MyAppointment : Appointment
{
   public int MyProperty {get;set;}
}
private void dayViewPlan_ResolveAppointments(object sender, ResolveAppointmentsEventArgs args)
{
   List<Appointment> m_Apps = new List<Appointment>();
   m_Apps.Add (new MyAppointment() { StartDate = DateTime.Now, MyProperty = 5})
   args.Appointments = m_Apps;
}       
0

Otrzymuje blad jak w zalaczonym screenie

0

Spójrz na mój kod i potem spójrz na swój, a następnie znów na mój. Znajdź różnicę.

0

no teraz widze ;-)
ale jeszcze nie zamykam watku zanim nie zaaplikuje

dzieki!

0

Tak to jest, jak się człowiek bierze za GUI, a wcześniej olał sobie postawy programowania, w tym wypadku dziedziczenie.

0

dzieki raz jeszcze , masz calkowita racje.... :-)

0

chociaz mam maly problem z wyciagnieciem teraz tych danych bo jak chce wydostac ten pola z listy obiektow typu Appoitment
to moge wyciagnac jedynie skladowe z typu Appoitment.... czyli moge tam cos wlozyc ale juz nie wyciagne.... :-|

0

Co jest bardziej prawdopodobne - ktoś spieprzył język programowania tak, że nie da się przeprowadzić tak banalnej operacji, czy to, że nie przeczytałeś książki o podstawach języka i nie wiesz jak to zrobić?

Rzutuj na klasę pochodną np. operatorem as, a następnie sprawdzaj czy wynik nie jest null. Albo najpierw sprawdzaj faktyczny typ obiektu z listy używając operatora is, a potem zwyczajnie rzutuj na klasę pochodną.

0

wlasnie na rzutowanie wpadlem ale jeszcze nie wiem co z tego wyjdzie, no ucze sie dopiero a z czyjas pomoca idzie szybciej - dzieki ! :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1