[過去ログ] 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.023s