[過去ログ] Microsoft .NET MAUI part9 [Xamarin] (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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はおもちゃ、ゲームも所詮おもちゃ、とか言って叩いて無視しすぎたんじゃないかなって思うわ。
56: 2022/09/20(火)23:29 ID:tcmFdYIT(2/4) AAS
プロジェクト作って、
MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="<外部リンク:schemas.microsoft.com xmlns:x="<外部リンク:schemas.microsoft.com xmlns:local="clr-namespace:CollectionViewMemoryLeak" x:Class="[プロジェクト名].MainPage" x:DataType="local:MainPage"> <Grid RowDefinitions="Auto,*"> <Button Text="Replace" Clicked="Button_Clicked"/> <CollectionView Grid.Row="1" ItemsSource="{Binding Items}"> <CollectionView.ItemTemplate> <DataTemplate> <Label Text="{Binding}"/> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView> </Grid> </ContentPage>
MainPage.xaml.cs
using System.Collections.ObjectModel; namespace [プロジェクト名]; public partial class MainPage : ContentPage { public ObservableCollection<string> Items { get; } = new() { "a" }; public MainPage() { InitializeComponent(); BindingContext = this; } private void Button_Clicked(object sender, EventArgs e) { Items[0] += "b"; } }
って置き換えて、デバッグ開始
ボタン1万回ぐらい押すとわかると思うよ
57: 2022/09/20(火)23:35 ID:tcmFdYIT(3/4) AAS
ボタン1万回押したくない人用
for (int i = 0; i < 10000; ++i) { await Task.Delay(1); Items[0] += "b"; }
58: 2022/09/20(火)23:36 ID:tcmFdYIT(4/4) AAS
※ライブツリービューがめっちゃ重くなるので注意
59: 2022/09/21(水)08:20 ID:e5hMcSyJ(1/4) AAS
.NET 7でマップコントロールが来る!
あとデスクトップようにツールチップやコンテキストメニューが追加されるそうな
60: 2022/09/21(水)08:20 ID:e5hMcSyJ(2/4) AAS
外部リンク:devblogs.microsoft.com
61(2): 2022/09/21(水)08:30 ID:kbEKaFBQ(1) AAS
Xamarin.formsからの移植って
今までのフォームやソースはだいたい使えるの?
dependencyとかそのまま使える?
フォルダ構成が変わりすぎててAndroid独自のソースどこにおけばいいかわからない
62: 2022/09/21(水)08:39 ID:e5hMcSyJ(3/4) AAS
>>61
ディペンデンシーはHandlerになった
63: 2022/09/21(水)08:40 ID:e5hMcSyJ(4/4) AAS
AndroidのソースはPlatformフォルダにいれればよい
64: 2022/09/21(水)08:58 ID:KMcq8I6w(1) AAS
>>61
Android独自のソースはPlatforms/Androidの下に置く
そうするとAndroid版のコンパイル対象になる
それか#if ANDROIDの中に入れる
Xamarinは複数プロジェクトだったけどMAUIは部分メソッドを使いたいために単一プロジェクトになってる
つまり共通ソースに部分メソッドの宣言を書いてPlatforms以下それぞれのプラットフォームにそれぞれの実装を書く
UIをカスタマイズしたいならレンダラーじゃなくハンドラーを書くかマッピングを変更する
マッピングの方が軽い変更に向く
マッピングとはUIの共通コードのメソッドやプロパティーをファサードとしてそれらへの操作と実際のそれぞれのプラットフォームでの実装を関連付けるものでプロパティーやメソッド毎に設定できる
一応Xamarinのソースはコンバートできることになってるけど信用してはいけない
65: 2022/09/23(金)08:43 ID:8SR5QsWP(1) AAS
MAUIではFreezableクラスが無くてBindingProxyを使えないのな。 書くしか無いか・・・
いちいち、DataGridセルなどのチャイルドレベルからDataContextを何段階アンセスターサーチなんてやってられない。
マンドクセーし、保守性悪い。
66: 2022/09/23(金)09:03 ID:gGLSN0ir(1/2) AAS
UIChallengeやってる人がFigmaAPI使ってC#のグラフィックコード生成するアプリを作ったみたいだね
Twitterリンク:jsuarezruiz
Twitterリンク:5chan_nel (5ch newer account)
67: 2022/09/23(金)23:24 ID:gGLSN0ir(2/2) AAS
.NET 7のMAUIについてMicrosoftのJames Montemgnoさんが語るみたい
0時から
動画リンク[YouTube]
まぁ地図機能がほとんどだろうな
あとデュアルスクリーンか?
AndroidやiOSでもできるのだろうか?
68(1): 2022/09/25(日)08:46 ID:DIWRYevd(1/3) AAS
固有プラットフォームのコードを呼び出すやつって条件付きコンパイルとパーシャルクラス使うやつあるけどパーシャルクラスの利点ってなんですかね?
維持管理がしやすいとか?
条件付きコンパイルはifつければいいだけだから実装は簡単
上下前次1-新書関写板覧索設栞歴
あと 934 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.020s