【问题标题】:How to call child window on button click in ItemsControls?如何在ItemsControls中单击按钮时调用子窗口?
【发布时间】:2012-08-03 12:45:02
【问题描述】:

我正在开发 Silverlight 应用程序。我正在使用 silverlight 中的 itemscontrols 根据要求调整 UI。

<ItemsControl x:Name="CertificationsAndLicensesItemsControl">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"></RowDefinition>                               
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                        </Grid.ColumnDefinitions>

                        <Grid Grid.Row="0">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"></RowDefinition>
                                <RowDefinition Height="Auto"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"></ColumnDefinition>
                                <ColumnDefinition Width="Auto"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Row="0" Grid.Column="0" Width="500">
                                <TextBlock TextWrapping="Wrap" Foreground="Green" Text="{Binding Path=CertificationsAndLicensesTitle}" FontWeight="Bold" Margin="5"></TextBlock>
                            </Grid>
                            <Grid Grid.Row="0" Grid.Column="1">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock FontWeight="Bold" Text="Valid from:" HorizontalAlignment="Left" Margin="5"></TextBlock>
                                    <TextBlock Text="{Binding Path=ValidFrom}" Margin="5" ></TextBlock>
                                    <TextBlock Text="Until" Margin="5"></TextBlock>
                                    <TextBlock Text="{Binding Until}" Margin="5"></TextBlock>
                                </StackPanel>
                            </Grid>
                            <Grid Grid.Row="1" Grid.ColumnSpan="2">
                                <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="5">
                                    <Button x:Name="EditButton" Tag="{Binding Path=ID}" Content="Edit" Click="EditButton_Click"></Button>
                                    <Button x:Name="DeleteButton" Tag="{Binding Path=ID}" Content="Delete" Click="DeleteButton_Click"></Button>
                                </StackPanel>
                            </Grid>
                        </Grid>

                    </Grid>

                </DataTemplate>

            </ItemsControl.ItemTemplate>
        </ItemsControl>

后面的代码如下

private void EditButton_Click(object sender, RoutedEventArgs e)
        {
            //int a = 10;
            //CertificationsAndLicensesChildWindow obj = new CertificationsAndLicensesChildWindow();
            //obj.Show();
            ChildWindow1 obj1 = new ChildWindow1();
            obj1.Show();
        }

        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            CertificationsAndLicensesChildWindow obj = new CertificationsAndLicensesChildWindow();
            obj.Show();
        }

单击按钮时不会显示子窗口。单击按钮后,整个用户界面消失。如果我删除以下句子

ChildWindow1 obj1 = new ChildWindow1();
                obj1.Show();

然后至少断点被命中。如果我保持上述句子不变,那么断点就不会被击中。如何在按钮单击时显示子窗口?您能否提供我可以解决上述问题的任何代码或链接

【问题讨论】:

    标签: c# silverlight-4.0 itemscontrol childwindow


    【解决方案1】:

    消失的 UI 几乎总是意味着未处理的异常 - 可能在 ChildWindow1 创建/显示期间存在一些错误。如果未附加(在 App 构造函数中执行),您可以尝试在 App 类中附加未处理异常的处理程序,并在未处理的异常处理程序中设置断点。这应该有助于您跟踪导致 UI 消失的异常。

    默认情况下,在创建 Silverlight 项目时,有一个处理程序,它会向 DOM 报告异常 - 您应该能够在 JavaScript 控制台中看到异常。

    【讨论】:

    • 是的。你是对的。我在 App.xaml.cs 中的 Application_UnhandledException 中设置了断点,发现它给出了错误无法加载程序集 System.Windows.Controls。解决了这个错误。一切都是工作文件。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2016-04-15
    相关资源
    最近更新 更多