XAML 如何停止使用IsReadyOnly在Xamarin中的Entry(Textbox)上获取第二个文本/条形码

6ljaweal  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(119)

我正在开发一个应用程序,我必须扫描条形码,每个条形码都在处理中,一切看起来都很好。当用户在处理第一个条形码时扫描第二个条形码时,我只得到文本框(条目)的问题,因为第二个条形码文本在文本框(txtBarcode)中附加了第一个。
我想停止获取任何文本/条形码,直到第一个条形码完成其处理。因此,我使用IsReadyOnly属性在扫描过程中不采取任何进一步的文本/条形码,但它不适合我。
//代码:创建的文本框事件:

txtBarcode.ReturnCommand = new Command(async () => await KeyEnteredOn_Barcode_TextBox_Async());

//当扫描任何条形码时,它调用下面的方法:

private async Task KeyEnteredOn_Barcode_TextBox_Async()
    {
     
        try
        {  ....
             txtBarcode.IsReadOnly = true;
           //Process Barcode..

        }catch(Exception e) {}
         finally {  txtBarcode.IsReadOnly = false; }
bn31dyow

bn31dyow1#

是的,就像ToolmakerSteve说的,你可以使用一个bool变量来指示数据是否正在被处理:

// True if data is being processed.
public static bool IsProcessing = false;

逻辑是这样的:

if (IsProcessing)
{   // Re-entered while still processing.

    //Store the second (third, etc) barcodes in a queue...
}
else
{
    IsProcessing = true;
    try
    {
        //Process Barcode...
        
        //while any stored barcodes (2nd, 3rd), process them also...
    }
    catch (Exception e) 
    {
    }
    finally
    {
        IsProcessing = false;
    }
}

相关问题