Frage

Ich habe einen sehr einfachen Fall, dass ich denke, von profitieren würde Vorlagen (aber ich bin mir nicht sicher, weshalb ich frage). All Templating Beispiele, die ich gesehen habe, entweder mehr Wissen übernehmen, als ich habe, sind zu spezifisch auf insgesamt Newb von großem Nutzen zu sein, wie ich, oder viele Neben Sachen enthalten, die es schwer machen, zu erkennen, was Teil der Vorlage ist.

Hier ist das Setup: Ich habe zwei Etiketten Seite an Seite mit dem ersten Etikett mit dem Namen eines Feldes aufgefüllt, und das zweite Etikett mit dem Wert des Feldes aufgefüllt.

Hier ist die XAML ich derzeit in meiner app (viele, viele Male):

<StackPanel Style="{StaticResource horizontalStackerStyle}">
    <Label Style="{StaticResource labelStyle}">Field One:</Label>
    <Label Style="{StaticResource valueStyle}" Name="field1" 
        Content="{Binding dataObject.field1}" />
</StackPanel>

Ich möchte eine Vorlage erstellen, so dass ich XAML so schreiben könnte:

<CustomControlOrWhatever 
    FieldName="Field One:" 
    FieldValue="{Binding dataObject.field1}"/>

Ich habe ein Gefühl, das ich dies mit irgendeiner Art von Vorlage zu tun. Ein Vorteil davon wäre, dass ich nicht brauchen, um zu halten die Stile und immer angeben. Hab ich recht? Wie würde ich das tun?

Vielen Dank im Voraus!

UPDATE:

Sie haben noch keine Antwort auf diese gefunden. Ich entschied mich für eine mögliche Lösung mit Abhängigkeitseigenschaften und versucht, eine

Andere Tipps

Sie könnten ein UserControl genannt FieldControl erstellen und die Sicherung (automatisch) Eigenschaften für FieldName und FieldValue definieren. (Normal Eigenschaften wären in Ordnung, solange man nur einmal binden müssen, was wahrscheinlich der Fall ist.)

Der Code XAML könnte wie folgt aussehen:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="foo.bar">
    <StackPanel Style="{StaticResource horizontalStackerStyle}">
        <Label Style="{StaticResource labelStyle}" Content="{Binding Path=FieldName, Mode=OneTime, StringFormat='{0}: '}"/>
        <Label Style="{StaticResource valueStyle}" Content="{Binding Path=FieldValue, Mode=OneTime}" />
    </StackPanel>
</UserControl>

Ich hoffe, das hilft.

Was Sie tun möchten, ist ähnlich wie die Diskussion über Bilder auf einer Schaltfläche mit einer einfachen Art und Weise der Festlegung des Weges, wie <Button MyImage="foo.jpg" /> setzen. Folgen Sie diesem Artikel für die tatsächlichen Details.

Um es zusammenzufassen:

  • Eine offensichtliche Möglichkeit wäre, eine Usercontrol mit Ihren zwei Etiketten zu erstellen und die beiden Eigenschaften ausgesetzt werden. Nicht viel Templating hier.

  • Die WPFish Lösung scheint es auf einem der Etiketten (sagen Sie den Wert), und bieten eine Steuerungsschablone zu verwenden, um zwei angebaute Eigenschaften zu sein, das andere Etikett (der Beschreibung) enthält. In der Vorlage binden Sie jedes Etikett Text an den entsprechenden Anlagen Eigenschaftswert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top