即时通讯新的wpf,并尝试将静态定义的DataGrid的Items.Count属性绑定到我的自定义控件的标签。WPF - 绑定Datagrid Items.Count到自定义控件标签
我目前的实现看起来像这样。但标签保持为空:我
在DataGrid中定义的类:
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; }
}
}
应该显示在标签
<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>
的Items.Count的的CustomControl的XAML
我部署自定义控件的XAML
<DataGrid Name="dataGrid1" VerticalAlignment="Top" Width="210">
<DataGrid.Columns>
<DataGridTextColumn Header="header" />
</DataGrid.Columns>
</DataGrid>
<my:BindingNavigator Name="bindingNavigator1" />
</Grid>
背后的事件处理代码,我填写的电网和设置的自定义控制
private void Window_Loaded(object sender, RoutedEventArgs e)
{
dataGrid1.Items.Add("1");
dataGrid1.Items.Add("2");
bindingNavigator1.DataGrid = dataGrid1;
}
DataGrid的财产,为什么我不能在Items.Count属性绑定标签?
感谢您的回复格雷格桑塞姆, 但DataGrid实例MainWindow XAML在自定义控件XAML中不是已知的。这就是为什么我尝试将其绑定到自定义控件中的属性。 – 2010-11-12 08:45:48
Sry Greg,我明白了! 你说得对。谢谢你的帮助。 – 2010-11-12 09:38:17
这是我的朋友......非常有用!我想'ElementName'和'Path'我可以访问所有属性。真的很好! – C4u 2016-10-07 08:51:37