Autor |
Beitrag |
Christoph1972
      
Beiträge: 690
Erhaltene Danke: 16
VS2015 Pro / C# & VB.Net
|
Verfasst: Fr 22.02.13 22:45
Hallo zusammen,
ich möchte in einem DataGrid den Cell Style auf VerticalAlignment & HorizontalAlignment auf center festlegen. Dazu hat mir goole diese Lösung geliefert: Click
Das Beispiel funktioniert bei mir jedoch nur wenn ich den Style als DynamicResource aufrufe, ansonsten bekomme ich eine XMLParseException.
Könnte mir bitte jemand erklären warum das so ist? Was haben die Jungs in dem Beispiel andersgemacht als ich?
XML-Daten 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| <Window x:Class="WpfDataGridTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="416" Width="651"> <Grid> <DataGrid Name="MyDataGrid" CellStyle="{DynamicResource Body_Content_DataGrid_Centering}" RowHeight="30" ColumnWidth="60" AutoGenerateColumns="False" HorizontalAlignment="Stretch" Margin="0" VerticalAlignment="Stretch" > <DataGrid.Columns> <DataGridTextColumn Binding="{Binding TestCol1}" Header="TestCol1" ></DataGridTextColumn> <DataGridTextColumn Binding="{Binding TestCol2}" Header="TestCol2" ></DataGridTextColumn> <DataGridTextColumn Binding="{Binding TestCol3}" Header="TestCol3" ></DataGridTextColumn> </DataGrid.Columns> </DataGrid> <Grid.Resources> <Style x:Key="Body_Content_DataGrid_Centering" TargetType="{x:Type DataGridCell}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <Grid Background="LightBlue"> <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </Grid.Resources> </Grid> <Window.Resources> </Window.Resources> </Window> |
Moderiert von Christian S.: Code- durch XML-Tags ersetzt
_________________ Gruß
Christoph
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Sa 23.02.13 12:17
Sie haben die Resource vor den Verweis gesetzt  ?
Zitat: | A StaticResource must not attempt to make a forward reference to a resource that is defined lexically further within the XAML file. Attempting to do so is not supported, and even if such a reference does not fail, attempting the forward reference will incur a load time performance penalty when the internal hash tables representing a ResourceDictionary are searched. For best results, adjust the composition of your resource dictionaries such that forward references can be avoided. If you cannot avoid a forward reference, use DynamicResource Markup Extension instead. |
_________________ >λ=
|
|
Christoph1972 
      
Beiträge: 690
Erhaltene Danke: 16
VS2015 Pro / C# & VB.Net
|
Verfasst: So 24.02.13 10:59
Hallo Sebastian!
Kha hat folgendes geschrieben : | Sie haben die Resource vor den Verweis gesetzt ? |
Könntest du mir bitte zeigen wie du das meinst? Ich kann das nicht nachstellen, ich bekomme es als StaticResource nicht zum laufen. Über Goole habe ich jeweils nur Infos, wie die von dir angehängte gefunden. Gut, das ist die Theorie dazu, nur wie sieht das praktisch aus? Mir erschließt sich nicht, wie ich das im XAML umsetzten muss. Ich denke da habe ich eine Lücke bei den Grundlagen.....
_________________ Gruß
Christoph
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: So 24.02.13 13:01
Ohne etwas XAML-Fähiges zur Hand zu haben: Du solltest nur den DataGrid- und den Grid.Resources-Knoten vertauschen müssen.
_________________ >λ=
|
|
Christoph1972 
      
Beiträge: 690
Erhaltene Danke: 16
VS2015 Pro / C# & VB.Net
|
Verfasst: So 24.02.13 13:49
Kha hat folgendes geschrieben : | Ohne etwas XAML-Fähiges zur Hand zu haben: Du solltest nur den DataGrid- und den Grid.Resources-Knoten vertauschen müssen. |
Öhm, wie  Könntest du da genau erklären was du tauschen würdest? Wenn ich es wörtlich nehme, ist der Code nicht mehr lauffähig.........
_________________ Gruß
Christoph
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: So 24.02.13 17:36
Also wenn das nicht läuft:
XML-Daten 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| <Window x:Class="WpfDataGridTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="416" Width="651"> <Grid> <Grid.Resources> <Style x:Key="Body_Content_DataGrid_Centering" TargetType="{x:Type DataGridCell}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <Grid Background="LightBlue"> <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </Grid.Resources> <DataGrid Name="MyDataGrid" CellStyle="{StaticResource Body_Content_DataGrid_Centering}" RowHeight="30" ColumnWidth="60" AutoGenerateColumns="False" HorizontalAlignment="Stretch" Margin="0" VerticalAlignment="Stretch" > <DataGrid.Columns> <DataGridTextColumn Binding="{Binding TestCol1}" Header="TestCol1" ></DataGridTextColumn> <DataGridTextColumn Binding="{Binding TestCol2}" Header="TestCol2" ></DataGridTextColumn> <DataGridTextColumn Binding="{Binding TestCol3}" Header="TestCol3" ></DataGridTextColumn> </DataGrid.Columns> </DataGrid> </Grid> <Window.Resources> </Window.Resources> </Window> |
...dann weiß ich auch nicht mehr weiter  .
_________________ >λ=
|
|
Christoph1972 
      
Beiträge: 690
Erhaltene Danke: 16
VS2015 Pro / C# & VB.Net
|
Verfasst: So 24.02.13 18:35
Super danke! Diese Konstellation hatte ich nicht probiert, ich habe definitiv nicht verstanden wie du das mit dem tauschen meintest. Mir war nicht klar das sich die Reihenfolge im XAML auswirkt, ich dachte bis gerade sie ist egal  Wieder was gelernt!
Nochmals vielen Dank!
_________________ Gruß
Christoph
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mo 25.02.13 13:08
Christoph1972 hat folgendes geschrieben : | ich habe definitiv nicht verstanden wie du das mit dem tauschen meintest. |
Nur um die Begrifflichkeiten noch schnell klarzustellen: XML ist eine Baumstruktur, ein Baum hat eine Wurzel, Knoten, Blätter etc. 
_________________ >λ=
|
|