簡體   English   中英

如何在generic.xaml上為多個按鈕引用click_event?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM