[過去ログ] Microsoft .NET MAUI part9 [Xamarin] (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
26: .NET MAUI HS 2022/09/17(土)20:28 ID:yUvyoPXr(2/2) AAS
>>25
つくったけど?
今日の昼アップロードした
他でやれって言われたから専スレ作ったんだけど

.NET MAUI HighSchool
2chスレ:tech
27
(1): 2022/09/19(月)08:23 ID:Guc0YHbo(1/10) AAS
ナビゲーションメニュー初めて作って見たんだけどナビゲーション先でObservableCollectionにAddしたものがメインのCollectionViewに表示されるようにするにはどうすればいいんだろうか?
ナビゲーションバックでコレクションを更新すればよいのかな?
28
(1): 2022/09/19(月)08:42 ID:CegtP/3a(1) AAS
>>27
逆に何で同じコレクションを使わないんだ
29: 2022/09/19(月)09:59 ID:Guc0YHbo(2/10) AAS
>>28
同じコレクション使ってるはずなんだけどページにそれを持ってこうとするとできないんよなぁ…
どうすればいいんだろうか?
違うページでObservableCollectionが入ってるクラスをnewしたら初期化されるかなぁ?
30: 2022/09/19(月)10:23 ID:lsi5cYj1(1/5) AAS
何を言ってるのかよくわからん
1つのObservableCollectionを2つのビューにバインドすればいいだけだろう
何をどうしたらそんなことになるんだ
それが再現できる最小のコードを作ってみたら動画のネタにもなるんじゃね
まさか2つのViewModelそれぞれに違うインスタンスのコレクションを追加して自動的に同期しないと悩んでるんじゃないだろうな
31: 2022/09/19(月)10:44 ID:shikJWy/(1) AAS
それなんじゃね
DIで別のインスタンスみてんじゃ
32
(1): 2022/09/19(月)11:35 ID:lsi5cYj1(2/5) AAS
DIならAddTransientだと別々のインスタンスになるからAddSingletonしとけ

public class Model
{
public Collection{get;}=new ObservableCollection<string>();
}
public class ViewModel
{
public ViewModel(Model model)
{
Model=model;
}
public Model Model{get;}
}
public MainPage(ViewModel viewModel)
{
ViewModel=viewModel;
}
public Model ViewModel{get;}
}

こんな風に作ったら

builder.Services.AddSingleton<Model>().AddSingleton<ViewModel>().AddSingleton<MainPage>();

こうすればそれぞれのコンストラクタにインスタンスが自動的に注入される
コンストラクタの引数をインターフェースにしとけばテストの時にモックが注入できる
33: 2022/09/19(月)12:15 ID:Guc0YHbo(3/10) AAS
こんな感じでObservableCollectionをDataCollectionとして作って
(DataSet.cs)
画像リンク


Navigation先でAddしたやつを
(DetailPage.xaml.cs)
画像リンク


MainPageのCollectionView(memoList)に反映させたい
(MainPage.xaml.cs)
画像リンク

34
(1): 2022/09/19(月)12:20 ID:Guc0YHbo(4/10) AAS
そういえばナビゲーション先のページAddTransientにしてたわ
AddSingletonにします。
35: 2022/09/19(月)12:43 ID:Guc0YHbo(5/10) AAS
newじゃなくて{get}だけでいいのかな?
36
(1): 2022/09/19(月)12:53 ID:lsi5cYj1(3/5) AAS
AddTransientどうこうより先に2回newしてんじゃねーかw
37: 2022/09/19(月)12:57 ID:lsi5cYj1(4/5) AAS
>>34
ページはどうせアプリ終了まで生きてるからどうだっていいぞ
38: 2022/09/19(月)14:21 ID:Guc0YHbo(6/10) AAS
>>36
やっぱりnewが悪いのか…
newせずDataCollectionを使う方法ってありますか?
39
(2): 2022/09/19(月)14:26 ID:lsi5cYj1(5/5) AAS
AddSingletonしろって言ったばかりだがもしかしてインスタンスの概念がわからない系?
40
(1): 2022/09/19(月)14:53 ID:Guc0YHbo(7/10) AAS
>>39

最初のnewはMainPageでいいんだよね?
そのナビゲーション先でDataListクラスの関数使おうとするとどう指定すればいいんだ?
41
(1): 2022/09/19(月)15:10 ID:oefI52tK(1/3) AAS
>>40
いやだからnewしないの
さっき書いたコードのModelのとこを共有したいコレクションを持ったクラスに書き換える
するとサービスプロバイダーにそのクラスを要求したら最初の1回は自動的にnewされたインスタンスが返り、次からは同じインスタンスが返る
つまり何回要求しても同じものが返ってくるんだよ
ここではDIを使ってるからMainPageがMauiAppに作成された時点でViewModelが自動的にサービスプロバイダから注入され、ViewModelが作成された時点でModelが注入される
同じく別のページとそのVMもAddSingletonしとけばそのページに遷移した時にVMにモデルの同じインスタンスが注入される
同じインスタンスだから状態も共有する
newしたら別のインスタンスになっちゃうだろ?
42
(1): 2022/09/19(月)15:37 ID:Guc0YHbo(8/10) AAS
>>41
うーんわからん…
Program.csに>>32を書けってこと?
43
(2): 2022/09/19(月)15:42 ID:oefI52tK(2/3) AAS
>>42
MAUI使ってるんじゃねーの?
外部リンク[aspx]:www.syncfusion.com
44: 2022/09/19(月)15:54 ID:Guc0YHbo(9/10) AAS
>>43
なるほど!
これで共有のObservableCollectionを共有できるのか!
これって.NET MAUIからの新機能?
45
(1): 2022/09/19(月)15:56 ID:oefI52tK(3/3) AAS
機能としては相当前からあるがここまでの圧をもって押し付けてくるのはMAUIからかな
46: 2022/09/19(月)15:59 ID:Guc0YHbo(10/10) AAS
>>45
ありがとう!
47: 2022/09/19(月)19:25 ID:UixL+xz1(1) AAS
>>39
みたいだね。 
インスタンスがいまいちわかっていないみたい。
48
(3): 2022/09/20(火)18:48 ID:tcmFdYIT(1/4) AAS
MAUI、CollectionViewがバグりすぎててガチで使えないwwwwwwww
ItemTemplate を設定してあるとき、バインド元のコレクションの要素の置き換えをやると画面上では要素が置き換わったように見えるが、置き換え前のビューもなぜかメモリ上に残ったままになるwwwwwwwう◯こwwwwwww
49: 2022/09/20(火)18:52 ID:uMWd7f8R(1/2) AAS
>>48
メモリ管理ができてないってこと?
50: 2022/09/20(火)19:41 ID:+1ymuJNf(1) AAS
>>48
こいつが使い方間違えてるのに50ペリカ
51: 2022/09/20(火)19:43 ID:Pye1gVbz(1) AAS
まさか上の続きなのか?
52: 2022/09/20(火)19:51 ID:uMWd7f8R(2/2) AAS
俺は.NET MAUIのこと悪く言わんよ
EditorコントロールがAndroidでは外側のグリッド(フレーム、スタックレイアウト含む)のWidthを参照しないって仕様は見つけたけど
ホリゾンタルオプションズをフィルにしても一文字分のWidthにしかならんやつ
もちろんちゃんとWidthリクエストすれば問題ない
53: 2022/09/20(火)20:34 ID:+UHOIJTp(1) AAS
まあ現象再現する最小コードでも上げてもらわないと何とも言えんわな
54: 2022/09/20(火)20:47 ID:4OsfujaD(1) AAS
>>48
それはパフォーマンスを優先するために画面の再描画をしてないだけ
RxのThrottle使え
55: 2022/09/20(火)23:22 ID:nDZPLz9M(1) AAS
debounceとかthrottleとかそういうのを知らずにゴリゴリ押して苦しんでる人結構多いよね。
webはおもちゃ、ゲームも所詮おもちゃ、とか言って叩いて無視しすぎたんじゃないかなって思うわ。
1-
あと 947 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.031s