質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

2回答

3410閲覧

Xamarinのログイン画面を作成したい

pj7577bm60v

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2020/05/04 13:25

編集2020/05/04 13:47

前提・実現したいこと

C#の勉強をしているものです。WindowsFormAppを作成したのでXamarinにてモバイル化を目指しています。
Xamarin.Forms入門というブログを写しているのですが、エラーが出てしまい進めていない状態です。
エラーが解決できてログイン画面を完成させたいです。
ログイン、画面遷移の機能はまた別で勉強中ですので、エントリーに文字を入力してボタンを機能させるというところまで進めたいです。

発生している問題・エラーメッセージ

C# public class IsGreaterZeroConverter : IValueConverter の部分で IValueConverter インターフェイスが実装できないです。 Xamarin <local:IsGreaterZeroConverter x:Key="isGreaterZeroConverter"/> の部分で local:IsGreaterZeroConverter が読み込まれていないです。

該当のソースコード

C#

1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Globalization; 5using System.Linq; 6using System.Text; 7using System.Threading.Tasks; 8using Xamarin.Forms; 9 10namespace App2 11{ 12 // Learn more about making custom code visible in the Xamarin.Forms previewer 13 // by visiting https://aka.ms/xamarinforms-previewer 14 [DesignTimeVisible(false)] 15 16 public class IsGreaterZeroConverter : IValueConverter 17 { 18 public object Converter(object value, Type targetType, object parameter, CultureInfo culture) 19 { 20 return ((int)value) > 0; 21 } 22 23 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 24 { 25 throw new NotSupportedException(); 26 } 27 } 28 public partial class MainPage : ContentPage 29 { 30 public MainPage() 31 { 32 InitializeComponent(); 33 } 34 } 35} 36

Xamarin

1<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 2 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 3 xmlns:d="http://xamarin.com/schemas/2014/forms/design" 4 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 5 mc:Ignorable="d" 6 xmlns:local="clr-namespace:App2" 7 x:Class="App2.MainPage"> 8 9 <ContentPage.Resources> 10 <ResourceDictionary> 11 <local:IsGreaterZeroConverter x:Key="isGreaterZeroConverter"/> 12 </ResourceDictionary> 13 </ContentPage.Resources> 14 <StackLayout> 15 <Entry x:Name="entryUserName" 16 Text=""/> 17 <Entry x:Name="entryPassword" 18 IsPassword="True" 19 Text=""/> 20 <Button Text="Login" 21 IsEnabled="False"> 22 <Button.Triggers> 23 <MultiTrigger TargetType="Button"> 24 <MultiTrigger.Conditions> 25 <BindingCondition Binding="{Binding Text.Length, Source={x:Reference entryUserName}, 26 Converter={StaticResource isGreaterZeroConverter}}" 27 Value="true"/> 28 <BindingCondition Binding="{Binding Text.Length, Source={x:Reference entryPassword}, 29 Converter={StaticResource isGreaterZeroConverter}}" 30 Value="true"/> 31 </MultiTrigger.Conditions> 32 <Setter Property="IsEnabled" 33 Value="True"/> 34 </MultiTrigger> 35 </Button.Triggers> 36 </Button> 37 </StackLayout> 38 39</ContentPage> 40

試したこと

C#のバージョンかと思ったのですがC#自体のバージョンの確認があいまいでしっかりと確認ができませんでした。
C#のバージョンが原因でしたらあわせて確認方法もご教授していただけるとありがたいです。
よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

Microsoft Visual Studio Community 2019
Version 16.5.4
.NET Framework version 4.8.03752

参考にさせていただいてるブログは
https://blog.okazuki.jp/entry/2017/06/19/012705
174ページになります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Converterではなく、Convertです。

投稿2020/05/04 15:07

f-miyu

総合スコア1625

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

IsGreaterZeroConverterのコードをMainPageの外に出して実行してみてください。

投稿2020/05/04 13:36

takapi_cs

総合スコア349

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pj7577bm60v

2020/05/04 13:45

ありがとうございます。 MainPageの外に出したところXamarinのlodal:は読み込みができました。 引き続きIValueConverterインタフェイスが実装できないです。 よろしくお願いします。
takapi_cs

2020/05/04 14:03 編集

私の環境では今記載しているコードで特に問題なく実行できました。 一旦ソリューションのクリーンとリビルドを実行してみてはいかがでしょうか。
pj7577bm60v

2020/05/04 16:25

ありがとうございました。 ソリューションのクリーン、リビルトではエラーが消えなかったのでVisualStudioの環境やバージョンを 見直していましたが原因がわかりませんでした。 解決方法はクラスを書き直し、インターフェイスの実装をひな型を使って入れなおしたら エラーがなくなりました。 ありがとうございました。
takapi_cs

2020/05/05 00:52

インタフェースの実装を手打ちしたら間違えることがあるので、Ctrl+.のコマンドを使うととても便利ですよ。 下記ページの「インターフェースや抽象メソッドの実装」の辺りを参考に。 https://blog.okazuki.jp/entry/2019/04/21/223134
pj7577bm60v

2020/05/05 06:13

便利なショートカットキーがあったのですね。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問