【发布时间】:2014-12-12 05:18:43
【问题描述】:
我正在创建一个包含 ContentPresenter 的用户控件。我用 Datagrid 填充窗口中的 contentPresenter,将 itemsSource 绑定到列表,但它不起作用。
我的数据网格是空的。但是当我将 Datagrid 移出我的 UserControl 时,我得到了里面的数据。
我的用户控件 XAML:
<UserControl Name="Instance" ...>
<Grid>
<ScrollViewer>
<ContentPresenter Content="{Binding Path=AdditionnalContent, ElementName=Instance}" />
</ScrollViewer>
</Grid>
</UserControl>
C#:
public Object AdditionnalContent
{
get { return (object)GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
public static readonly DependencyProperty AdditionnalContentProperty = DependencyProperty.Register("AdditionnalContent", typeof(object), typeof(MyUserControl),
new PropertyMetadata(null));
我的窗口
<Window Name="win" ...>
<Grid>
<my:MyUserControl>
<my:MyUserControl.AdditionnalContent>
<!-- Datagrid is empty -->
<DataGrid ItemsSource="{Binding LIST, ElementName=win}" AutoGenerateColumns="True" />
</my:MyUserControl.AdditionnalContent>
</my:MyUserControl>
<!-- Datagrid have content -->
<DataGrid ItemsSource="{Binding LIST, ElementName=win}" AutoGenerateColumns="True" />
</Grid>
</Window>
C#:
public partial class MainWindow : Window
{
public List<Object> LIST
{
get;
private set;
}
public MainWindow()
{
fillList();
InitializeComponent();
}
}
谢谢
【问题讨论】:
-
下载 snoopwpf.codeplex.com。您可以使用此工具在应用程序运行时检查您的 UI 并发现绑定错误。
-
我在电脑上工作,我不是管理员,我无法安装程序...
标签: c# wpf user-controls