BlackCoin's Corner

und noch ein Blog

n Strings in WPF zusammensetzten

In einer unserer Anwendungen haben wir die Anforderung, dass sich jeder einzelne Window Title, aus einem Namen für das jeweilige Fenster und dem jeweiligen variablen Firmen Namen zusammengesetzt wird. Eigentlich wäre für diesen Sachverhalt alleine kein Blogeintrag notwendig, schließlich gibt es für dieses Vorhaben ja auch genug Möglichkeiten. Jedoch wie ich erst kürzlich wieder lesen konnte, sieht so manch einer aufgrund der Vielzahl an Möglichkeiten den Wald vor lauter Bäumen nicht.

So möchte ich an dieser Stelle, mal zwei Lösungsmöglichkeiten, der Öffentlichkeit etwas näher bringen.

 

Für diesen Anwendungsfall gibt es eine Vielzahl von Lösungsmöglichkeiten, sei es mit einem AttachedProperty, Implementierung eines eigenen Windows, ein im Backend Definiertes Propperty, dass per Binding an die Oberfläche gebunden wird, … alles Möglichkeiten die mir so auf die schnelle einfallen, doch wie so oft es gibt noch weitere.

Wie Z.B. über einen Converter, wie diesen hier

public class AddUnternehmen : IValueConverter 
    { 
        #region IValueConverter Member 


        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
        { 
            return string.Format("{0} - {1}", value, GlobaleDaten.AllgemeineEinstellungen.Singleton.AuthUnternehmen); 
        } 


        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
        { 
            throw new NotImplementedException(); 
        } 


        #endregion 
    }

Nachdem dieser den Application.Resources hinzugefügt wurde,

<Application.Resources> 
       <conv:AddUnternehmen x:Key="AddFirma"/> 
</Application.Resources>

kann er nun zum zusammensetzen, des Window Title benutzt werden.

<Window.Title> 
    <Binding Converter=”{StaticResource AddFirma}”> 
        <Binding.Source> 


            <!--xmlns:clr="clr-namespace:System;assembly=mscorlib"--> 
            <clr:String>Globale Suche</clr:String> 
        </Binding.Source> 
    </Binding> 
</Window.Title>

 

Und zum Ende noch die zweite versprochene Möglichkeit, welches diesen Anwendungsfall per MultiBinding zu Lösen versucht.

<Window.Title> 
    <MultiBinding StringFormat="{}{0} - {1}"> 
        <Binding> 
            <Binding.Source>


                <!--xmlns:clr="clr-namespace:System;assembly=mscorlib"-->                 
                <clr:String>Globale Suche</clr:String> 
            </Binding.Source> 
        </Binding>


        <!—xmlns:clr="clr-namespace:…"-->                 
        <Binding Path="AuthUnternehmen" Source="{x:Static Glob:AllgemeineEinstellungen.Singleton}"/> 
    </MultiBinding> 
</Window.Title>


Posted: Jan 14 2010, 09:49 von Lars Schmitt | mit 4 comment(s)
Abgelegt unter:

Kommentare

dotnet-kicks.de sagte:

Sie wurden gekickt (eine gute Sache) - Trackback von dotnet-kicks.de

# Januar 15, 2010 12:04

Twitter Trackbacks for n Strings in WPF zusammensetzten - BlackCoin's Corner [dotnet-forum.de] on Topsy.com sagte:

Ping Antwort von  Twitter Trackbacks for                 n Strings in WPF zusammensetzten - BlackCoin's Corner         [dotnet-forum.de]        on Topsy.com

# Januar 15, 2010 8:02

BG sagte:

Ganz nett aber versuch's mal mit MVVM.

# Januar 15, 2010 8:37

Lars Schmitt sagte:

Hallo BG,

Natürlich wäre es mittels MVVM sauberer umgesetzt!!

Nur für die Demonstration, von einer eingentlich so einfachen Angelegenheiten, wäre das wohl etwas zu viel geworden.

Freundliche Grüße

Lars

# Januar 15, 2010 12:19
Kommentar abgeben

(verpflichtend) 

(verpflichtend) 

(optional)

(verpflichtend)