1
我有一個DataTemplate,它需要一個對象的事件處理程序。此DataTemplate包含在ResourceDictionary中。將事件處理程序添加到此模板的最佳方式是什麼?來自DataTemplate的WinRT事件處理
我試着在app.xaml.cs中定義事件處理程序,但處理程序沒有執行。在ResourceDictionary的文件後面創建代碼會導致在MergedDictionaries中的應用程序啓動過程中加載錯誤。
從GraphStyles.xaml
<DataTemplate x:Key="PieTemplate">
<Grid HorizontalAlignment="Left" Width="350" Height="350" >
<Border>
<Charting:Chart
x:Name="PieChart"
Title="Play Attempts"
Margin="70,0" Loaded="PieChart_Loaded">
<Charting:Chart.Series>
<Charting:PieSeries
Title="Attempts"
ItemsSource="{Binding Items}"
IndependentValueBinding="{Binding Name}"
DependentValueBinding="{Binding Value}"
IsSelectionEnabled="True" />
</Charting:Chart.Series>
</Charting:Chart>
</Border>
</Grid>
</DataTemplate>
在App.Xaml.cs
private void PieChart_Loaded(object sender, RoutedEventArgs e)
{
var pieChart = sender as Chart;
var legendItems = ((PieSeries)pieChart.Series[0]).LegendItems;
foreach (LegendItem item in legendItems)
{
pieChart.LegendItems.Add(item);
pieChart.LegendStyle = item.Style;
}
}
我去了選項#2。它確實打破了分離,但我希望這是一個臨時解決方案。我正在使用這種技術來解決WinTxamltoolkit的餅圖實現中的一個錯誤。 –