小编Jso*_*ork的帖子

ImageGalleryControl不会触发

我正在尝试从服务器下载一个字节的图像,但图像不会显示.我得到一个正确的字节数组并调整大小.它可以从相机添加图片,但从互联网上添加图片时不起作用.

我已经确认图像已正确保存并正确下载,因为我可以复制字节数组并使用字节数组字符串显示它.

我发现在调试时比较两种方法的问题,并在execturepickcommand它触发我的"ItemSourceChanged"方法,但它不会触发该AddImages方法.

收藏

public class ImageGalleryPageModel
{
    public ObservableCollection<ImageModel> Images
    {
        get { return images; }
    }

    private ObservableCollection<ImageModel> images = new ObservableCollection<ImageModel>();
}
Run Code Online (Sandbox Code Playgroud)

这可以添加此类中的图片

private async Task ExecutePickCommand()
{
    MediaFile file = await CrossMedia.Current.PickPhotoAsync();

    if (file == null)
        return;

    byte[] imageAsBytes;
    using (MemoryStream memoryStream = new MemoryStream())
    {
        file.GetStream().CopyTo(memoryStream);
        file.Dispose();
        imageAsBytes = memoryStream.ToArray();
    }

    if (imageAsBytes.Length > 0)
    {
        IImageResizer resizer = DependencyService.Get<IImageResizer>();
        imageAsBytes = resizer.ResizeImage(imageAsBytes, 1080, 1080);

        ImageSource imageSource = ImageSource.FromStream(() …
Run Code Online (Sandbox Code Playgroud)

c# xaml xamarin xamarin.forms

17
推荐指数
1
解决办法
513
查看次数

如何在Xamarin中重用相同的视图?XAML

所以我得到了这个代码,我需要在我或多或少的所有页面上重复使用,但是我有点厌倦了改变一个页面并且必须在10个或更多的地方做同样的事情,有没有更好的方法做这个?

使用Xamarin.Forms.也许有可能使用自定义控制器或其他方式使用标记扩展到stacklayout do ax:静态引用它吗?

   <!--#region BOTTOM Navigation Bar-->

        <!-- Theme Colored bar-->
        <StackLayout Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3" Padding="0,0,0,0" Spacing="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Orientation="Horizontal" BackgroundColor="{StaticResource ThemeBkColor}" >
        </StackLayout>

        <!-- Bottom Menu bar -->
        <StackLayout Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3" Padding="0,3,0,3" Spacing="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Orientation="Horizontal" BackgroundColor="{StaticResource ThemeBkColorBottomBar}" >

            <!-- Left -->
            <StackLayout Padding="15,0,0,0" Spacing="10" VerticalOptions="FillAndExpand" HorizontalOptions="StartAndExpand" Orientation="Horizontal"  >

                <StackLayout Orientation="Vertical" VerticalOptions="Center" HorizontalOptions="CenterAndExpand" Spacing="2">
                    <StackLayout.GestureRecognizers>
                        <TapGestureRecognizer Command="{Binding CmdGoToCheckUpdates}" NumberOfTapsRequired="1"/>
                    </StackLayout.GestureRecognizers>

                    <Image Source="updates.png" HeightRequest="35" WidthRequest="35" HorizontalOptions="Center" />
                    <Label Text="Updates" HorizontalOptions="Center" Style="{StaticResource BottomMenuBtnText}" />

                </StackLayout>

            </StackLayout>
            <!-- Center --> …
Run Code Online (Sandbox Code Playgroud)

xaml xamarin xamarin.forms

4
推荐指数
1
解决办法
1011
查看次数

相关来源绑定Xamarin

我的问题在于viewcell,由于它是IssueModel类而找不到OnDelete命令,我试图改变Listview的绑定上下文,但除了上面的绑定之外,它不会改变任何东西.

有没有办法改变视单元的绑定上下文,所以我不必将命令放入IssueModel?

freshMvvm:FreshBaseContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:converters="clr-namespace:ASFT.Converters;assembly=ASFT"
             xmlns:freshMvvm="clr-namespace:FreshMvvm;assembly=FreshMvvm"
             xmlns:helperMethods="clr-namespace:ASFT.HelperMethods;assembly=ASFT"
             x:Class="ASFT.Pages.IssueListPage">
    <ContentPage.Resources>
        <ResourceDictionary>
            <converters:SelectedItemEventArgsToSelectedItemConverter x:Key="SelectedItemConverter" />
            <converters:DateTextConverter x:Key="DateToTextConverter" />
        </ResourceDictionary>
    </ContentPage.Resources>
<ListView ItemsSource="{Binding Issues}" SeparatorColor="#444444" RowHeight="90" IsPullToRefreshEnabled="True" IsRefreshing="{Binding IsBusy}" RefreshCommand="{Binding PullRefreshCommand}" >
        <ListView.Behaviors>
        <helperMethods:EventToCommandBehavior EventName="ItemSelected" 
                                          Command="{Binding OnSelectedIssueCommand}" 
                                          Converter="{StaticResource SelectedItemConverter}" />
        </ListView.Behaviors>
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell >
                    <ViewCell.ContextActions>
                        <MenuItem  Command="{Binding OnDelete}"  Text="Delete" IsDestructive="True" />
                    </ViewCell.ContextActions>

                    <ViewCell.View>
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"></RowDefinition>
                                <RowDefinition Height="Auto"></RowDefinition>
                                <RowDefinition Height="*"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="70"></ColumnDefinition>
                                <ColumnDefinition Width="*"></ColumnDefinition>
                                <ColumnDefinition Width="50"></ColumnDefinition>
                            </Grid.ColumnDefinitions>

                            <Image Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Source="{Binding SeverityImagePath}" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="70"/>
                            <Image Grid.Row="0" …
Run Code Online (Sandbox Code Playgroud)

c# data-binding xaml xamarin xamarin.forms

3
推荐指数
1
解决办法
1922
查看次数

弃用的绑定,有什么新的方法呢?

不推荐使用此绑定,您不应再使用泛型.我该怎么做呢?

BindableProperty.Create<ImageGallery, IList>(
                view => view.ItemsSource,
                default(IList),
                BindingMode.TwoWay,
                propertyChanging: (bindableObject, oldValue, newValue) => {
                    ((ImageGallery)bindableObject).ItemsSourceChanging();
                },
                propertyChanged: (bindableObject, oldValue, newValue) => {
                    ((ImageGallery)bindableObject).ItemsSourceChanged(bindableObject, oldValue, newValue);
                }
            );
Run Code Online (Sandbox Code Playgroud)

c# xamarin xamarin.forms

1
推荐指数
1
解决办法
454
查看次数

标签 统计

xamarin ×4

xamarin.forms ×4

c# ×3

xaml ×3

data-binding ×1