3

こんにちは私はリストボックスをxmlファイルにバインドしていて、各アイテムにボタンデータテンプレートを与えたので、各アイテムにクリックイベントを簡単に登録できます。

クリックしたボタンのコンテンツを取得して、クエリを実行したいと思います。

これが私のコードです

XAML

<ListBox  Name="listBox1" >
        <ListBox.ItemsSource>
            <Binding Source="{StaticResource keywordLib}" XPath="Position/Keyword/Word"/>
        </ListBox.ItemsSource>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Button Content="{Binding}" Click="keyword_Click"/>
            </DataTemplate>
        </ListBox.ItemTemplate>

    </ListBox>

何時間も解決策を探した後。クリックイベントの送信者を使用する必要があることはわかっていますが、通常のボタンでは問題なく機能しましたが、ここでは説明しませんでした。

    private void keyword_Click(Object sender, RoutedEventArgs e)
    { 
       Button btn = (Button)sender;
       String keyword = btn.Content.ToString();
       MessageBox.Show(keyword);
     }

メッセージボックスに「System.Xml.XmlElement」と表示されました。ボタンの内容の代わりに。

誰かに感謝します。これについて私を助けてくれます。私はこれに多くを費やしており、解決策はたった1行のコードであると推測できます。

4

2 に答える 2

2

ボタンのコンテンツを System.Xml.XmlElement にキャストします。次に、この要素の InnerText プロパティを使用します。または、テキストに到達するためにさらに操作を行う必要があるかもしれません。XML ファイルの作成方法によって異なります。

Rq : コード内のいくつかの同一のコントロールを区別する必要がある場合は、タグを使用します。そのため、コンテンツとタグを個別に設定したり (多言語アプリに必要)、タグ (プレフィックス/サフィックス、インデックスなど) を選択するときに「タグ ロジック」を使用したりして、コードでの処理を簡素化できます。

于 2012-07-10T00:19:20.797 に答える