wpf - 无法使用自定义控件

时间:2013-09-29 21:33:17

标签: c# wpf custom-controls

我在StackPanel内部有一个自定义控件

<Window x:Class="Video_Editor.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
    xmlns:m="clr-namespace:Video_Editor">
<Grid>
    </StackPanel>
    <ScrollViewer Margin="10,40,10,10" Grid.Row="2" VerticalScrollBarVisibility="Auto">
        <StackPanel Name="stackPanel" >
            <m:CustomControl Name="testControl"/>
        </StackPanel>
    </ScrollViewer>
</Grid>

自定义控件目前没有做任何事情。

public class CustomControl: ItemsControl
{
}

我试图在窗口的构造函数中执行此操作:

public MainWindow()
{
    InitializeComponent();
    testControl.Items.Add("item");
}

我收到错误“名称”testControl在当前上下文中不存在。

1 个答案:

答案 0 :(得分:3)

您必须使用x:Name,因为您是从另一个公开FrameworkElement属性的Name派生的。

如果FrameworkElement设置了Name属性(ItemsControl似乎正在执行),则无法在派生类型上声明Name属性,但您可以使用Xaml x:Name属性,因此您可以对Name进行评估并从后面的代码访问

示例:

    <StackPanel Name="stackPanel" >
        <m:CustomControl x:Name="testControl"/>
    </StackPanel>