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 ?

InformationsquelleAutor Buko crab | 2010-11-11
Schreibe einen Kommentar