我观察到一个与 WPF DataGrid 验证相关的非常奇怪的问题,该问题仅在某些情况下发生。为了重现这个问题,我有一个测试窗口。
<Window x:Class="TEST.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TEST"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto">
</RowDefinition>
</Grid.RowDefinitions>
<DataGrid x:Name="datagrid" AutoGenerateColumns="True" Grid.Row="0" ColumnWidth="*"></DataGrid>
<Button Click="Button_Click" Grid.Row="1">Fill Data</Button>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是背后的代码:
namespace TEST
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
ObservableCollection<Person> list = null;
private void Button_Click(object sender, RoutedEventArgs e)
{
list= new ObservableCollection<Person>();
for (int i = 0; i < 100; i++)
{
list.Add(new Person() { Age = 20, …Run Code Online (Sandbox Code Playgroud) 我正在尝试获取相机预览并将其中一部分用于在ImageView上显示.此代码在模拟器上正常工作但在设备上崩溃并出现以下错误:
A/libc(2659):致命信号11(SIGSEGV)位于0x42e612a9(代码= 2),线程2659
我看了很多与SIGSEGV错误相关的问题,但我找不到任何解决这个问题的方法.我的设备和模拟器是Android 4.1.2
Size sizeOrgnl;
Rect newRect;
ByteArrayOutputStream newStream;
Bitmap newPicture;
ImageView imgView;
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int w, int h) {
camera=Camera.open();
if(camera!=null)
{ try
{
List<Size> cmszs=camera.getParameters().getSupportedPictureSizes();
for(int i=0;i<cmszs.size();i++)
{
if(cmszs.get(i).width<500&&(cmszs.get(i).width>400))
{camera.getParameters().setPictureSize(cmszs.get(i).width, cmszs.get(i).height);}
}
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(arg0);
camera.stopPreview();
camera.startPreview();
Thread.sleep(500);
newStream=new ByteArrayOutputStream();
imgView=(ImageView)findViewById(R.id.imageView1);
camera.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
if(sizeOrgnl==null)
{sizeOrgnl=camera.getParameters().getPictureSize();
newRect=new Rect(sizeOrgnl.width/2-20,sizeOrgnl.height/2-20,sizeOrgnl.width/2+20,sizeOrgnl.height/2+20);
}
YuvImage img = new YuvImage(data, ImageFormat.NV21, sizeOrgnl.width, sizeOrgnl.height, null);
newStream=new ByteArrayOutputStream();
img.compressToJpeg(newRect, 90, newStream);
newPicture …Run Code Online (Sandbox Code Playgroud)