2009-02-20 14 views
6

このボタンをクリックする方法は、コンテンツとボタン「レポート」をクリックすると、「(のAssemblyName).Reports」と呼ばれるウィンドウの起動:標準のXAML要素に属性を追加する方法は?

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    Button button = (Button)e.OriginalSource; 
    Type type = this.GetType(); 
    Assembly assembly = type.Assembly; 
    Window window = (Window)assembly.CreateInstance(String.Format("{0}.{1}", type.Namespace, button.Content)); 
    window.ShowDialog(); 
} 

をしかし、私は、ボタンのコンテンツ属性値が変更できるようにしたいです、例えば"Stock Reports"に変更されるかもしれませんが、私はまだボタンをクリックして "(assemblyname).Reports"を起動する必要があります。

ボタンタグに属性を追加する方法はありますか? "TheWindowFileName"?

<Button x:Name="btnReports" Content="Stock Reports" TheWindowFileName="Reports"/> 

もしそうでなければ、私はコード要素の中で読んで処理できるボタン要素にどのように追加情報を追加できますか?

答えて

10

確かにあなたはXAML要素に属性を追加するattached propertiesを使用することができますが、あなたはおそらく、既存のTagプロパティを使用することができます必要なもののために:

<Button x:Name="btnReports" Content="Stock Reports" Tag="Reports"/> 
+0

非常に興味深いですが、私が必要としていたことにはうってつけです。複数のものを追加することは可能ですか?このMSDNページはそれほど明確ではありません:http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.tag.aspx –

+0

いいえ、タグは幅またはコンテンツと同様のプロパティです一度しか使用できません。あなた自身を追加するには、添付のプロパティのリンクに従ってください。 –

1

ここに添付プロパティを使用すると、やり過ぎではなく、あなたのことができますボタンの動作をCommandにカプセル化し、コマンドで使用するデータをCommandParameterとして渡すことができます。それはトリックを行う必要があります。

関連する問題