1

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 が存在しないというエラーが表示されます。

4

1 に答える 1

3

プロパティ自体を公開しているx:Name別のものから派生しているため、使用する必要があります。FrameworkElementName

aFrameworkElementがそのNameプロパティを設定している場合 (ItemsControlそうしているようです) Name、派生型でプロパティを宣言することはできませんが、プロパティを使用してXaml x:Nameaを宣言しName、コード ビハインドからアクセスできます。

例:

    <StackPanel Name="stackPanel" >
        <m:CustomControl x:Name="testControl"/>
    </StackPanel>
于 2013-09-29T22:11:51.427 に答える