![](/img/trans.png)
[英]How to Add Click_Events to buttons added a runtime in Generic.Xaml?
[英]How to reference a click_event for multiple buttons on a generic.xaml?
我有一個通用.Xaml主題來創建一個自定義日歷控件,該控件在另一個項目中引用了我的主要WPF表單。 在此通用頁面上,已將日歷上的每一天/每一天設置為一個按鈕。 我想向每個按鈕添加一個click_event,這將隨后觸發我將日歷控件放在其上的窗體上的方法。
這是日歷:
然后是XAML代碼:
<Button IsEnabled="{Binding IsEnabled}" Click="" BorderThickness="0" ScrollViewer.VerticalScrollBarVisibility="Auto" Background="{x:Null}" Foreground="White" Height="72" Width="131">
<Button.Template>
<ControlTemplate>
<ContentPresenter
VerticalAlignment="Center"
HorizontalAlignment="Left">
<ContentPresenter.Content>
<Grid x:Name="ContentGrid" HorizontalAlignment="Left" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="15*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15*" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" FlowDirection="RightToLeft">
<TextBlock Text="{Binding Date, Converter={StaticResource DateConverter}, ConverterParameter=DAY}" Grid.Column="0" VerticalAlignment="Top" FontSize="14" Margin="5,5,5,5" FontWeight="Light" >
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsTargetMonth}" Value="false">
<Setter Property="TextBlock.Foreground" Value="Black"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
<TextBlock Text="{Binding Notes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Column="2" VerticalAlignment="Center" FontSize="14"/>
</Grid>
</ContentPresenter.Content>
</ContentPresenter>
</ControlTemplate>
</Button.Template>
</Button>
從代碼中可以看到,我將click_event留為空白,這是我需要幫助的地方,因為我不確定在其他項目中引用該方法所需的內容。 我試過簡單地放入方法名稱,這是我收到的錯誤:
http://i.stack.imgur.com/M2B0e.jpg
我想鏈接的方法(將打開另一種形式):
private void Day_Click(object sender, RoutedEventArgs e)
{
CalendarExtension CE = new CalendarExtension(DateTime.Now, _loggedInUser);
CE.Show();
}
如標題所示,我的問題是從Generic.xaml頁面引用Click_Event的最佳方法是什么?
嗯,舊的方法如何再次處理generic.xaml
問題中聲明的控件的事件 。 坦率地說,這有點痛苦。 您需要在您的CustomControl
實現Control.ApplyTemplate
方法 ,該方法在應用ControlTemplate
時將被調用。
然后,在這種方法中,您需要訪問相關的UI元素(如果為它們命名,會有所幫助)並以編程方式添加事件處理程序。 您可以查看MSDN上的“ 如何:查找ControlTemplate生成的元素”頁面,以幫助您從ControlTemplate
訪問UI元素。 我猜測您將能夠自行附加處理程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.