我創建了一個包含串列框的 XAML 檔案。ListBox.ItemTemplate 的 DataTemplate 包含一個 TextBlock 和一個 Button(為簡潔起見,省略不相關的屬性)
<DataTemplate>
<TextBlock Text={Binding AppName} />
<Button Name="btnRefresh" Content="Refresh"/>
</DataTemplate>
我正在使用 Powershell 顯示和處理此 XAML。有沒有辦法從 Powershell 向按鈕添加單擊事件,因為當我在 XAML 中讀取時,DataTemplate 中的控制元件不會被列舉,所以我不能簡單地參考變數并將 Add_Click 處理程式附加到它:
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)
$window.FindName("btnRefresh").add_click({...
因此,在單擊按鈕時,如果 ListBox 中有很多行,我需要確定單擊了哪個按鈕。理想情況下,單擊事件的 EventArgs 將傳遞一些與按鈕所附加到的 ListBoxItem 相關的資料。
只是重申任何解決方案都必須適用于 Powershell,而不是 C#。
謝謝
uj5u.com熱心網友回復:
您不需要Button在ItemTemplate. 您可以處理自身的附加ButtonBase.Click事件ListBox,例如:
$listBox.AddHandler([System.Windows.Controls.Primitives.ButtonBase]::ClickEvent,
$ClickHandler)
然后,在處理程式中,您可以OriginalSource使用RoutedEventArgs.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/424230.html
