Mittwoch, 29. Juli 2009

Markup-Extension in WPF selber erstellen

Lange nichts geschrieben.. Heute eine Kleinigkeit zu wpf:

Markup-Extension in WPF selber erstellen:

Bsp: Ein PersonenAnzeigeControl erwartet ein Objekt vom Typ Person – auch in xaml – hier können aber nur Texte übergeben werden. (Nachname sei eindeutig….) :

Eine Klasse:

public class PersonExtension : MarkupExtension
{
public string Nachname { get; set;}

public override object ProvideValue(IServiceProvider serviceProvider)
{
//Target herausfinden…
IProvideValueTarget provideValueTarget = (IProvideValueTarget) serviceProvider.GetService(typeof (IProvideValueTarget));
DependencyProperty dependencyProperty = provideValueTarget.TargetProperty as DependencyProperty;
if (dependencyProperty == null)
{
return null;
}

//dependencyProperty ist nun das Target, dass gesetzt werden soll (hier „Person“) –
//wichtig, damit Personen nur den Richtigen Properties zugewiesen werden
return dependencyProperty.PropertyType!=typeof(Person) ? null : Person.FindByNachname(this.Nachname);
}
}

Kann wie folgt im xaml verwendet werden


<xaml>
<personenanzeigecontrol person = " { my:Person nachname=Müller } " />
</xaml>

Hinweise:
  • Die Klasse PersonExtension kann in xaml als my: PersonExtension oder als my:Person verwendet werden. Funktioniert nur, wenn es keine richtige Klasse my:Person gibt.
  • Wenn es einen Konstruktor gäbe
    • public PersonExtension(string nachname)…
    • Könnte die Extension in xaml (auch) wie folgt verwendet werden: Person=“{my:Person Müller}“

Dienstag, 2. Juni 2009

Leere VisualStudio 2008 Solution im Explorer

von Stefan bekam ich mal den Tipp wie man den Explorer dazu bringt, dass man eine leere VS2008 Solution anlegen kann (Datei - Neu - Microsoft Visual Studio 2008 Solution).
Hier gibt's das nochmal zum Nachlesen.

Da ich schon immer mal ein msi-Installer erstellen wollte, habe ich mir dies' als hinreichend kleines Ziel genommen.

Das Ergebnis kann hier begutachtet werden.

Donnerstag, 28. Mai 2009

Mein erstes Blog

Das ist es also.. Mein erstes Blog.

Viel Zeit ist immer wenig - bei mir zumindest. Mal sehen was hier so landet.

Ich war bei Stefan Lieser und Ralf Westphal im Clean Code Developer Camp und versuche mich daher als Clean Code Deveoper. Dazu gehört auch „Erfahrungen weitergeben“ (Grüner Grad), was ich hiermit beginnen möchte.

Ich zumindest bin gespannt…