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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Xamarin

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

Q&A

解決済

1回答

453閲覧

ListViewのBindingについて

shi_o

総合スコア53

Xamarin

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

0グッド

0クリップ

投稿2018/12/09 13:34

編集2018/12/09 14:00

ListViewのGroupHeaderTemplateにあるコントロールの値(具体的には下記GroupHeaderTemplateのLabelのTextプロパティ)をItemTemplateにあるコントロールのイベントのプロパティ(<!-- ↓ ここ ↓ --><!-- ↑ ここ ↑ -->と書いているところ)にバインディングしたいです。

何か方法がありましたらご教授お願い致します。。。

ーーーーーー追記ーーーーーー
正確には現在選択されているCellのGroupHeaderTemplateのLabelのTextが取得したいです。

Xamarin

1<?xml version="1.0" encoding="UTF-8"?> 2<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 3 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 4 x:Class="Test.Views.TestPage" 5 xmlns:trigger="clr-namespace:Test.Triggers" 6 xmlns:viewModel="clr-namespace:Test.ViewModels" 7 Title="{Binding Title}" 8 x:Name="page" 9 xmlns:local="clr-namespace:Test;assembly=Test"> 10 11 <ContentPage.BindingContext> 12 <viewModel:TestViewModel/> 13 </ContentPage.BindingContext> 14 15 <ContentPage.Content> 16 <StackLayout> 17 <local:ResizableListView x:Name="GroupedView" 18 ItemsSource="{Binding GroupedItems}" 19 IsGroupingEnabled="true" 20 HasUnevenRows="true" 21 SeparatorVisibility="None"> 22 <ListView.GroupHeaderTemplate> 23 <DataTemplate> 24 <ViewCell> 25 <Grid> 26 <Grid.RowDefinitions> 27 <RowDefinition/> 28 </Grid.RowDefinitions> 29 <Grid.ColumnDefinitions> 30 <ColumnDefinition /> 31 <ColumnDefinition Width="auto"/> 32 </Grid.ColumnDefinitions> 33 <Label x:Name="Date" 34 Text="{Binding Day}" 35 VerticalTextAlignment="Center" 36 Margin="10,0,0,0"/> 37 <Button Text="+" 38 Grid.Column="1" 39 Margin="0,0,10,0" 40 Command="{Binding Source={x:Reference page}, 41 Path=BindingContext.AddTest}" 42 CommandParameter="{Binding Sec}"/> 43 </Grid> 44 </ViewCell> 45 </DataTemplate> 46 </ListView.GroupHeaderTemplate> 47 <ListView.ItemTemplate> 48 <DataTemplate> 49 <ViewCell> 50 <StackLayout> 51 <Editor Text="{Binding Name}" 52 FontSize="16" 53 Margin="10,0,0,0" 54 AutoSize="TextChanges"> 55 <Editor.Triggers> 56 <EventTrigger Event="TextChanged"> 57 <trigger:TextChanged/> 58 </EventTrigger> 59                     <!-- ↓ ここ ↓ --> 60 <EventTrigger Event="Unfocused"> 61 <viewModel:LostFocused 62 Day="{Binding Source={x:Reference Date}, Path=Text}"/> 63 </EventTrigger> 64                     <!-- ↑ ここ ↑ --> 65 </Editor.Triggers> 66 </Editor> 67 <Editor Text="{Binding Zairyo}" 68 FontSize="13" 69 Margin="10,0,0,0" 70 AutoSize="TextChanges"/> 71 </StackLayout> 72 </ViewCell> 73 </DataTemplate> 74 </ListView.ItemTemplate> 75 </local:ResizableListView> 76 </StackLayout> 77 </ContentPage.Content> 78</ContentPage>

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

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

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

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

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

guest

回答1

0

ベストアンサー

ItemTemplateからGroupHeaderTemplateへのバインドはできないと思います。

今回の場合なら、各グループのItemデータにもDayの値を持たせれば済む話だと思うのですが、どうなのでしょうか?

投稿2018/12/10 01:46

f-miyu

総合スコア1625

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

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

shi_o

2018/12/10 14:31 編集

ItemTemplate にDayの値を持たせるとしたらどのプロパティに入れれば良いでしょうか?
f-miyu

2018/12/10 14:36

NameやZairyoを持つクラスにDayプロパティを追加すればいいのではないでしょうか
shi_o

2018/12/10 14:49

そのクラスに持たせたとして、LostFocusedのトリガーでどうやって取得すれば良いでしょうか・・・?
f-miyu

2018/12/10 15:43

そもそもtriggerはバインドできないんでした。 Dayは、LostFocusedのInvokeの引数で渡されるEditorのBindingContextから取得すればいいと思います。
shi_o

2018/12/11 11:37 編集

public class LostFocused : TriggerAction<Editor> { public string Day { set; get; } protected override void Invoke(Editor sender) { Day = sender.BindingContext.??? } } こんな感じでしょうか?
shi_o

2018/12/11 11:59

多分違うと思いますが・・・
f-miyu

2018/12/11 12:04

BindingContextをNameやZairyoを持つクラスにキャストすればいいです。
shi_o

2018/12/11 12:12

解決いたしました! このようにしてBindingContextを取得できるのですね!! 大変勉強になりました。。。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問