应用程序使用 xaml 进入中断模式
Posted
技术标签:
【中文标题】应用程序使用 xaml 进入中断模式【英文标题】:Application goes into breakmode with xaml 【发布时间】:2018-03-29 11:17:25 【问题描述】:我正在尝试制作一个条件形式 您可以在其中选择服务器类型,并且在该值上,字段会更改。 但问题是我启动这个 WPF 应用程序的那一刻。我的应用程序进入中断模式。但我不知道他在哪里或为什么进入休息模式。
在我评论 2 个网格的那一刻,应用程序启动没有问题。但是一旦我取消注释这些网格,WPF 应用程序就会失败。
这是 XAML
<Grid Margin="0,0,0,5" Grid.Row="7" Grid.ColumnSpan="2" Background="Yellow">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Label Grid.ColumnSpan="2" Grid.Column="0" HorizontalAlignment="Center" FontWeight="Bold" Content="Server settings" />
<Label Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" FontWeight="Bold" Content="Server type:" />
<ComboBox Name="ServerTypCmbx" Grid.Row="1" Grid.Column="1" SelectionChanged="ServerTypCmbx_SelectionChanged"></ComboBox>
<StackPanel Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="3">
<Grid Visibility="Hidden" Name="S7Grid" Background="Purple">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Label Grid.Row="0" HorizontalAlignment="Center" FontWeight="Bold" Content="Server Ip:" />
<TextBox Text="Binding Path=ServerSetting.Ip" Margin="0,1" Grid.Row="0" Grid.Column="1"></TextBox>
<Label Grid.Row="1" HorizontalAlignment="Center" FontWeight="Bold" Content="Server Rack:" />
<TextBox Text="Binding Path=ServerSetting.Rack" Margin="0,1" Grid.Row="1" Grid.Column="1"></TextBox>
<Label Grid.Row="2" HorizontalAlignment="Center" FontWeight="Bold" Content="Server Slot:" />
<TextBox Text="Binding Path=ServerSetting.Slot" Margin="0,1" Grid.Row="2" Grid.Column="1"></TextBox>
</Grid >
<Grid Visibility="Hidden" Name="OPC_UAGrid" Background="Purple">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Label Grid.Row="0" HorizontalAlignment="Center" FontWeight="Bold" Content="Server Adress:" />
<TextBox Text="Binding Path=ServerSetting.Adress" Margin="0,1" Grid.Row="0" Grid.Column="1"></TextBox>
<Label Grid.Row="1" HorizontalAlignment="Center" FontWeight="Bold" Content="Server NameUri:" />
<TextBox Text="Binding Path=ServerSetting.NamespaceUri" Margin="0,1" Grid.Row="1" Grid.Column="1"></TextBox>
<Label Grid.Row="2" HorizontalAlignment="Center" FontWeight="Bold" Content="Server NameIndex:" />
<TextBox Text="Binding Path=ServerSetting.NameSpaceIndex" Margin="0,1" Grid.Row="2" Grid.Column="1"></TextBox>
</Grid>
<Grid Visibility="Hidden" Name="OPC_DAGrid" Background="Purple">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Label Grid.Row="0" HorizontalAlignment="Center" FontWeight="Bold" Content="Server Adress:" />
<TextBox Text="Binding Path=ServerSetting.Adress" Margin="0,1" Grid.Row="0" Grid.Column="1"></TextBox>
<Label Grid.Row="1" HorizontalAlignment="Center" FontWeight="Bold" Content="Server Name:" />
<TextBox Text="Binding Path=ServerSetting.Name" Margin="0,1" Grid.Row="1" Grid.Column="1"></TextBox>
</Grid>
</StackPanel>
</Grid>
【问题讨论】:
是否有任何进一步的信息或错误信息? 不,只是黑屏 vs 说:“您的应用已进入中断状态,但没有代码可显示,因为所有线程都在执行外部代码(通常是系统或框架代码)。” 尝试使用here中提到的方法继续执行。然后你应该看到堆栈跟踪。 可以通过删除页面/窗口/用户控件,重新创建它,将每一行添加回XAML来解决,只要你添加一行,调试它......这将解决问题或至少缩小范围 @MStoerzel,在鸟嘴模式下无法继续 【参考方案1】:我找到了解决办法。
在输出窗口中,您可以看到它给出了来自演示文稿 dll 的错误 它不能在属性上绑定一种或两种方式。该属性是私有集
之前:
public string Adress get; private set;
public string NamespaceUri get; private set;
public ushort NameSpaceIndex get; private set;
之后
public string Adress get; set;
public string NamespaceUri get; set;
public ushort NameSpaceIndex get; set;
【讨论】:
以上是关于应用程序使用 xaml 进入中断模式的主要内容,如果未能解决你的问题,请参考以下文章