/ / Datenbinden Sie einen Wert an einen gridviewcolumn-Header? - wpf, datenbindung

Datenbinden eines Werts an einen gridviewcolumn-Header? - wpf, Datenbindung

Ist es möglich?

Ich habe eine Listenansicht mit mehreren Rasteransichtsspalten. Die letzte Spalte hat eine dynamische Überschrift. Ich weiß nicht, wie die Spaltenüberschrift zur Entwurfszeit aussehen wird. Es ist eigentlich eine Zahl, die ich als Zeichenfolge anzeigen möchte.

    <GridViewColumn Header="{Binding Path=SomeValue}"
DisplayMemberBinding="{Binding Path=OtherValue}"/>

Dies scheint nicht zu funktionieren. Die Daten werden einwandfrei gebunden, nur der Header bleibt leer. Wenn Sie durch den Code gehen, wird die SomeValue-Eigenschaft nicht einmal beschädigt.

Antworten:

2 für die Antwort № 1

Ich denke, Ihr Problem ist die Quelle derEigenschaft "SomeValue". Wenn Sie an eine Liste von Objekten binden, ist es nicht sinnvoll, die Kopfzeile durch eine Eigenschaft für dieses Objekt bestimmen zu lassen, da Sie dann für jedes Objekt eine andere Kopfzeile haben könnten von der Spalte zu der Eigenschaft "SomeValue", die sich auf demselben Objekt befindet wie meine Eigenschaft "OtherValue". "Die Eigenschaft" SomeValue "muss aus einer anderen Quelle stammen als die Liste, an die Ihr Rasterelement gebunden ist Legen Sie in der Bindung die Eigenschaft "RelativeSource" oder "ElementName" fest.


1 für die Antwort № 2
  1. Lies einen Beitrag http://blogs.infragistics.com/blogs/josh_smith/archive/2008/06/26/data-binding-the-isvisible-property-of-contextualtabgroup.aspx

2.Erstelle eine Datenkontext-Spionageklasse, die sich auf den Beitrag in Schritt 1 bezieht (kopiere und füge sie ein, es sind ein paar Zeilen)

3.Verwenden Sie den Datenkontext-Spion

<common:DataContextSpy x:Key="dci" DataContext="{Binding SomeProperty}" />

<DataGridTemplateColumn Header="{Binding Source={StaticResource dci},
Path=DataContext.SomePropertysListOfValues[14]}">