WPF - Datagrid Binden Elemente.Zählen Sie auf Benutzerdefinierte Steuerelemente Label
im neu in wpf und versuchen die Bindung der Elemente.Count-Eigenschaft eine statische definiert DataGrid an ein Label meiner Custom Control.
Meine aktuelle Implementierung sieht wie folgt aus. Aber das label bleibt leer :ich
Die Klasse, wo das DataGrid-Steuerelement definiert:
public class BindingNavigator : Control
{
private static DataGrid dataGrid;
static BindingNavigator()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(BindingNavigator), new FrameworkPropertyMetadata(typeof(BindingNavigator)));
}
public DataGrid DataGrid
{
set { dataGrid = value; }
get { return dataGrid; }
}
}
XAML der CustomControl, wo die Elemente.Zählung angezeigt werden in einem label
<Style TargetType="{x:Type local:BindingNavigator}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:BindingNavigator}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid MinWidth="210" MinHeight="50">
<Label Width="30" Height="30" Content="{Binding ElementName=DataGrid, Path=Items.Count}" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
XAML, wo ich die Bereitstellung meiner custom control
<DataGrid Name="dataGrid1" VerticalAlignment="Top" Width="210">
<DataGrid.Columns>
<DataGridTextColumn Header="header" />
</DataGrid.Columns>
</DataGrid>
<my:BindingNavigator Name="bindingNavigator1" />
</Grid>
Den Code hinter EventHandler, wo ich fülle das raster und legen Sie die DataGrid-Eigenschaft des Benutzerdefinierten Steuerelements
private void Window_Loaded(object sender, RoutedEventArgs e)
{
dataGrid1.Items.Add("1");
dataGrid1.Items.Add("2");
bindingNavigator1.DataGrid = dataGrid1;
}
Warum kann ich nicht zur Bindung der Elemente.Count-Eigenschaft der Label ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alles, was Sie tun müssen, ist ändern Sie den Wert der ElementName, um den tatsächlichen Namen des DataGrid (ie dataGrid1 statt DataGrid).
Hier eine voll funktionierende Beispiel:
ElementName
undPath
ich bin in der Lage, den Zugriff auf alle Eigenschaften. Wirklich, wirklich schön!Fand ich diese für mich arbeiten...