【发布时间】:2014-04-11 09:21:55
【问题描述】:
我发现了很多关于这个主题的帖子,但我的应用程序无法运行,所以我在这里提出一个新问题。
我想制作一个用户控件元素,它有一个可以从外部填充的网格。 这是 UserControl-Xaml-Part:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="70"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="2" x:Name="ButtonGrid"/>
</Grid>
在我的 MainPage.xaml 之外,我想像这样使用它:
<UserControls:MyControl>
<UserControls:MyControl.ButtonGrid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="130"/>
</Grid.ColumnDefinitions>
// Add elements and stuff
</Grid>
</UserControls:MyControl.ButtonGrid>
</UserControls:AppBar>
但我还没有走到这一步。它说“ButtonGrid”未被识别或无法访问成员(我的德语错误消息翻译)。但是当我输入UserControls:MyControl. 时,它会提示ButtonGrid。
MyControl.xaml.cs 如下所示:
namespace myApp
{
public partial class MyControl: UserControl
{
public Grid ButtonGrid { get; set; }
// or
public Grid ButtonGrid
{
get { return (Grid)GetValue(ButtonGridProperty); }
set { SetValue(ButtonGridProperty, value); }
}
public static readonly DependencyProperty ButtonGridProperty =
DependencyProperty.Register("ButtonGrid", typeof(Grid), typeof(MyControl), new PropertyMetadata(new Grid()));
public MyControl()
{
InitializeComponent();
}
}
}
我尝试了许多方法来使这个“ButtonGrid”值可见并起作用,但仍然没有。有什么想法吗?
编辑 我可以使用简单的 getter 在代码隐藏中获取 Grid。但是,在某个地方创造东西然后把它们放到我想要的地方并不是直接的。
【问题讨论】:
标签: c# xaml windows-phone-8 user-controls