rebuy-de / rb-forms-barcode

Rb.Forms.Barcode is a Xamarin.Forms view for scanning barcodes.
https://github.com/rebuy-de/rb-forms-barcode
MIT License
43 stars 21 forks source link

refs #37651 add barcode command #29

Closed armintelker closed 9 years ago

armintelker commented 9 years ago

@omares @rebuy-de/it-mobile

omares commented 9 years ago

:+1: cool. Hättest du noch lust für die anderen Events auch Commands anzulegen?

armintelker commented 9 years ago

@omares ja mache ich auch noch gerne.

armintelker commented 9 years ago

@omares

fvermeulen commented 9 years ago

noch das was Ota wegen der Version gemeint hat. Grund will ich dann auch wissen. Sonst :+1:

omares commented 9 years ago

Naja 1. wäre die Änderung kein Bugfix sondern ein Minor release, also version 0.4.0 und es ist nicht klar ob noch andere Änderungen mit in den Release kommen. In anderen Worten, das erstellen eines Releases sollte koordinierter ablaufen als einfach die Version hochzudrehen. :)

omares commented 9 years ago

:+1:

DVLNarayana commented 9 years ago

How to get the BarCode in Viewmodel if we use the BarcodeDecodedCommand command?

armintelker commented 9 years ago

@DVLNarayana
If you use XAML you can do it in this way.

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="Foo.Pages.ScannerPage"
    xmlns:rbBarcode="clr-namespace:Rb.Forms.Barcode.Pcl;assembly=Rb.Forms.Barcode.Pcl"
    xmlns:viewModels="clr-namespace:Foo.ViewModels;assembly=Foo"
>
    <RelativeLayout>
        <rbBarcode:BarcodeScanner
            BarcodeChangedCommand="{Binding BarcodeChanged}"
        />
    </RelativeLayout>
    </ContentPage.Content>
    <ContentPage.BindingContext>
        <viewModels:ScannerViewModel x:Name="scannerViewModel" />
    </ContentPage.BindingContext>
</ContentPage>
public class ScannerViewModel : ReactiveObject {
    public ReactiveCommand<object> BarcodeChanged { set; get; }
    public ScannerViewModel() 
    {
        BarcodeChanged = ReactiveCommand.Create();
        BarcodeChanged.Subscribe(executeSearch);
    }

    private async void executeSearch(object term)
    {
        // Do some stuf...
    }
}

We use the ReactiveUI framework to handle our commands. But you can use simple the ICommand interface provided by Microsoft or Xamarin.