【问题标题】:CS 0102: The type ' ' already contains a definition for ' 'CS 0102: 类型“ ”已包含“ ”的定义
【发布时间】:2018-10-05 08:34:49
【问题描述】:

我的标题错误 CS 0302 指出“'EditMemberPage' 类型已经包含 'takePhoto' 的定义,我的代码与第 30 行关联。我正在尝试使用媒体插件通过 iPhone 模拟器拍照。这里是代码:

using Relate.Model;
using Plugin.Media;
using Plugin.Media.Abstractions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;


namespace Relate.Views
{
    public partial class EditMemberPage : ContentPage
    {

        public EditMemberPage()
        {
            InitializeComponent();

            takePhoto.Clicked += async (sender, args) =>
            {

                if (!CrossMedia.Current.IsCameraAvailable || 
        !CrossMedia.Current.IsTakePhotoSupported)
                {
                    DisplayAlert("No Camera", ":( No camera avaialble.", "OK");
                    return;
                }

                var file = await CrossMedia.Current.TakePhotoAsync(new 
        Plugin.Media.Abstractions.StoreCameraMediaOptions
                {
                    Directory = "Test",
                    SaveToAlbum = true,
                    CompressionQuality = 75,
                    CustomPhotoSize = 50,
                    PhotoSize = PhotoSize.MaxWidthHeight,
                    MaxWidthHeight = 2000,
                    DefaultCamera = CameraDevice.Front
                    });

                if (file == null)
                    return;

                DisplayAlert("File Location", file.Path, "OK");

                image.Source = ImageSource.FromStream(() =>
                  {
                  var stream = file.GetStream();
                  file.Dispose();
                  return stream;
              });
            };
        }
    }

}

【问题讨论】:

  • 请在相关行上做标记。请注意,这是一个部分类,这意味着实现在多个源文件中。该错误可能与您在此处显示的文件不同。
  • 您是否在整个解决方案中搜索过“takePhoto”?
  • 代码示例甚至不包含takePhoto 的声明。如果确实如此,可能会帮助我们理解问题。
  • 谢谢@DiegoRafaelSouza,我有不止一个拍照按钮,这就是发生这种情况的原因。

标签: c# xamarin xamarin.forms


【解决方案1】:

除非 EditMemberPage.cs 比您向我们展示的更多,请查看 EditMemberPage.xaml。您可能有两个带有 x:Name="takePhoto" 的元素。

具有 x:Name 的元素在该类中创建一个成员,其名称是 x:Name 的值。因此,您不能拥有多个具有相同 x:Name 的元素,也不能在 C# 中声明一个与元素的 x:Name 具有相同名称的成员。

【讨论】:

  • 感谢@DavidS,我有不止一个拍照按钮,这就是发生这种情况的原因。
猜你喜欢
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
相关资源
最近更新 更多