Benutzer mit den meisten Antworten
WPF DataGrid erkennt dg_BeginningEdit() nicht - Template

Frage
-
Hallo zusammen,
ich möchte mittels dg.BeginningEdit() feststellen, ob bestimmte Zellen eines DataGrids bearbeitet werden.
Das klappt mit:
<Style x:Key="Zelle" TargetType="{x:Type DataGridCell}" > <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <Grid Background="{TemplateBinding Background}"> <ContentPresenter/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
Sobald ich Templates verwende klappt es leider nicht mehr.
<Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <TextBlock/> </ControlTemplate> </Setter.Value> </Setter>
Kommt dg.BeginningEdit() mit Templates nicht zurecht?
Gibt es eine einfache Lösung?
Dirk
PlanAbsatzTabelle_BeginningEdit(
Antworten
-
Hallo,
ich kann dein Problem nicht reproduzieren. Ich habe das DataGrid wie folgt erstellt:<DataGrid Margin="0,100,0,0" Name="dg" AutoGenerateColumns="False" BeginningEdit="dg_BeginningEdit"> <DataGrid.Resources> <Style x:Key="Zelle" TargetType="{x:Type DataGridCell}" > <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <TextBlock/> </ControlTemplate> </Setter.Value> </Setter> </Style> </DataGrid.Resources> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Id}"/> <DataGridTextColumn Binding="{Binding Name}"/> </DataGrid.Columns> </DataGrid>
Im Codebehind wies ich die Daten wie folgt zu:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); dg.ItemsSource = new[] { new Data() { Name = "a", Id = 1 }, new Data() { Name = "b", Id = 2 }, new Data() { Name = "c", Id = 3 } }; } void dg_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) { Debug.WriteLine("dg_BeginningEdit"); } } public struct Data { public string Name { get; set; } public int Id { get; set; } }
Egal, ob ich kein Template oder eines deiner Beiden einsetzte, es erschien immer die Debug-Ausgabe.
Hast du irgend etwas anders gemacht, als ich?
PS: Es speilt keine Rolle ob die Spalten explizit definiert wurden oder vom DataGrid erstellt werden.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert Dirk2006 Dienstag, 14. Januar 2014 11:20
Alle Antworten
-
Hallo,
ich kann dein Problem nicht reproduzieren. Ich habe das DataGrid wie folgt erstellt:<DataGrid Margin="0,100,0,0" Name="dg" AutoGenerateColumns="False" BeginningEdit="dg_BeginningEdit"> <DataGrid.Resources> <Style x:Key="Zelle" TargetType="{x:Type DataGridCell}" > <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <TextBlock/> </ControlTemplate> </Setter.Value> </Setter> </Style> </DataGrid.Resources> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Id}"/> <DataGridTextColumn Binding="{Binding Name}"/> </DataGrid.Columns> </DataGrid>
Im Codebehind wies ich die Daten wie folgt zu:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); dg.ItemsSource = new[] { new Data() { Name = "a", Id = 1 }, new Data() { Name = "b", Id = 2 }, new Data() { Name = "c", Id = 3 } }; } void dg_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) { Debug.WriteLine("dg_BeginningEdit"); } } public struct Data { public string Name { get; set; } public int Id { get; set; } }
Egal, ob ich kein Template oder eines deiner Beiden einsetzte, es erschien immer die Debug-Ausgabe.
Hast du irgend etwas anders gemacht, als ich?
PS: Es speilt keine Rolle ob die Spalten explizit definiert wurden oder vom DataGrid erstellt werden.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert Dirk2006 Dienstag, 14. Januar 2014 11:20