2012-04-17 6 views
1

は、私は次の標準的な手順を経てのMenuItemののControlTemplateを取得=「偽」のIsOpenを与える:のControlTemplateの深さでない理由ポップアップが

var resource = FindResource(new ComponentResourceKey(typeof(MenuItem), "TopLevelHeaderTemplateKey")); 
var settings = new XmlWriterSettings() { Indent = true }; 
var sb = new StringBuilder(); 
var writer = XmlWriter.Create(sb, settings); 
XamlWriter.Save(resource, writer); 
MyTextBox.Text = sb.ToString(); 

そして、私は疑問に思う、私は常に取得:

<Popup IsOpen="False" ... 

作業版があるとき:

<Popup IsOpen="{TemplateBinding IsSubmenuOpen}" ... 

は、任意のハードコーディングさISSUが見つかりませんでした反射板ILSpyを介して。なぜ、標準のバージョンのMenuItemが動作していますか?誰かがそれを説明できましたか?

答えて

1

私はそれをチェックしていませんが、実行時にテンプレートを取得している可能性があります。データバインディングは既に適用されています。

Expression Blendを使用してデザイン時にコントロールのテンプレートを取得することをお勧めします。そこに定義されているすべてのバインディングがあります。コントロールを右クリックして 'テンプレート - >現在の編集'のようなオプションを見つけてください。

関連する問題