【发布时间】:2021-12-30 12:14:24
【问题描述】:
我遇到了一个希望相当简单的问题。我正在创建一个简单的 xamarin 表单应用程序,该应用程序使用 zxing 扫描条形码,目前我只希望它在表单的输入字段中显示它,但绑定不起作用,仅设置值的注释代码也没有后面的代码。事实上,出于某种原因,在这个简单的项目中,直接从后面的代码中访问表单项只会在调试时冻结应用程序。希望有人可以指出导致此问题的代码中的一些简单问题。谢谢。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
x:Class="Inventory.MainPage">
<ContentPage.Content>
<StackLayout>
<Grid x:Name="gridScanner">
<zxing:ZXingScannerView x:Name="zxing" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" OnScanResult="ZXingScannerView_OnScanResult" />
<zxing:ZXingDefaultOverlay x:Name="overlay" TopText="" BottomText="Barcode will be scanned automatically" ShowFlashButton="False" />
</Grid>
<StackLayout>
<Label x:Name="lblSku" Text="SKU" FontAttributes="Bold" FontSize="Title"/>
<Entry x:Name="txtSku" Placeholder="SKU" ReturnType="Next" />
</StackLayout>
</StackLayout>
</ContentPage.Content>
public MainPage()
{
InitializeComponent();
_currentItem = new ScanItem();
txtSku.BindingContext = _currentItem.SKU;
txtSku.SetBinding(Entry.TextProperty, "Value");
zxing.IsScanning = true;
}
public void ZXingScannerView_OnScanResult(Result result)
{
_currentItem.SKU = result.Text;
//txtSku.Text = result.Text;
}
【问题讨论】:
-
ScanItem在哪里定义?它是否实现INotifyPropertyChanged?Value是公共财产吗?
标签: c# xaml xamarin.forms binding zxing