0

タイトルが混乱しているかもしれませんが、問題は具体的にはここにあります:(から継承する)ためのXAMLファイルがあります。そして、その中で私はそれを次のように設定しました:ControlTemplateMyTypeContentControlTemplateDataContext

DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}"

DataContextそして、そこから取得したいときにMyType、初めてnullが表示されます。それをクリックすると(ウィンドウ内の長方形です)、必要なものがオブジェクトに変わります。私はすべてのものを検索しました。私が行っているすべてのイベントにはメソッドLeftButtonDownがありません。ApplyTemplate(),UpdateLayout()これらのメソッドを呼び出しても、役に立ちません。何をする必要がありますか?PSこれDataContextParentこのアイテムのものです。送信できるのはパラメーターですが、他の解決策があるはずです

これは、次のXAMLテンプレートの一部です。

<Style TargetType="{x:Type s:Connector}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type s:Connector}">
                <Grid Name="grid" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}">
                    <Border BorderBrush="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, 
                        Path=BorderBrush}" x:Name="border" BorderThickness="2" Background="Transparent">        
                        <Image Source="/DiagramDesigner;component/Resources/1337238611_port.png"/>
                    </Border>
                    <Rectangle Fill="Transparent" Margin="-2"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

そして、これは私がDataContextを取得したい場所です:

public DesignerItem ParentDesignerItem // 
    {
        get
        {

            if (parentDesignerItem == null)
            {

                parentDesignerItem = this.DataContext as DesignerItem;
               // if (parentDesignerItem==null) parentDesignerItem = (this.Template.FindName("grid", this) as Grid).DataContext as DesignerItem;
            }

            return parentDesignerItem;
        }
        set
        {

            parentDesignerItem = value;
        }
    }

StyleこれはXAMLどちらStyleにもあると言わざるを得ませんDesignerItem

4

1 に答える 1

0

問題は私のアルゴリズム PS i からいくつかの情報を復元し、null パラメータを使用してSQL2 倍以上を追加Connectorsし、アクセスしたいときにこれらの null オブジェクトを取得することです。

于 2012-07-11T07:50:22.793 に答える