Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
探検
WPF(.NET, WinUI) GUIプログラミング Part26
レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
830デフォルトの名無しさん
2021/09/10(金) 12:13:47.11ID:Lruqlpqj >>828
<StackPanel>
<ListBox x:Name="list1" Height="100"/>
<Button Content="押しやがれ" Click="Button_Click"/>
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
list1.Items.Add("aaa");
}
<StackPanel>
<ListBox x:Name="list1" Height="100"/>
<Button Content="押しやがれ" Click="Button_Click"/>
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
list1.Items.Add("aaa");
}
831デフォルトの名無しさん
2021/09/10(金) 12:55:58.47ID:Q+a9aIEQ DirectXのDLLを参照してソフトを開発しているのですが、
開発環境ではちゃんと動作するものの別のPCだと参照エラーになる
調べてみると普通のPC(Windows10)にはDLLがインストールされていなくてこうなっているみたい
DLLを実行ファイルと同じ階層に置いてそれを参照するように設定すると
どの環境でも動くのですが、実行ファイルごとMSが作ったDLLを勝手に
配布したりするとダメらしい
たった2つのDLLのために2つも大きなランタイムファイルを
インストールしてもらうのも億劫なので、どうするべきか(T_T)
開発環境ではちゃんと動作するものの別のPCだと参照エラーになる
調べてみると普通のPC(Windows10)にはDLLがインストールされていなくてこうなっているみたい
DLLを実行ファイルと同じ階層に置いてそれを参照するように設定すると
どの環境でも動くのですが、実行ファイルごとMSが作ったDLLを勝手に
配布したりするとダメらしい
たった2つのDLLのために2つも大きなランタイムファイルを
インストールしてもらうのも億劫なので、どうするべきか(T_T)
832デフォルトの名無しさん
2021/09/10(金) 14:53:58.46ID:hSrIzeXT833デフォルトの名無しさん
2021/09/10(金) 15:03:18.84ID:7ibsVcuq どうするかは利用者が決めることだろ
834デフォルトの名無しさん
2021/09/10(金) 15:37:55.55ID:I2sJLr90 >>831
DirectXのバージョンは?
DirectXのバージョンは?
835デフォルトの名無しさん
2021/09/10(金) 16:08:35.11ID:G+HVY4K2 >MicrosoftのWin UI 3はUWPを捨ててWin32に集中
MSもようやく学習したかな?
MSもようやく学習したかな?
836デフォルトの名無しさん
2021/09/10(金) 16:21:51.87ID:cwpfUPcV >>835
笑
まじでアホなのか、
コード書けないマネージャークラスが
非IT的な裁定を下してるかだな
それにもうMSもオープンソースに任せてんだろ
オープンソースはガチで良いものしか
上がって来れないからね
笑
まじでアホなのか、
コード書けないマネージャークラスが
非IT的な裁定を下してるかだな
それにもうMSもオープンソースに任せてんだろ
オープンソースはガチで良いものしか
上がって来れないからね
837デフォルトの名無しさん
2021/09/10(金) 17:01:51.06ID:Q+a9aIEQ838デフォルトの名無しさん
2021/09/10(金) 22:40:26.42ID:g9DWrMgK windows10じゃランタイムをインストールしないとダメだぞ
インストーラは再配布もできる
https://www.microsoft.com/en-us/download/search.aspx?q=directx
DirectX End-User Runtimes (June 2010)
This download provides the DirectX end-user redistributable that developers can include with their product.
インストーラは再配布もできる
https://www.microsoft.com/en-us/download/search.aspx?q=directx
DirectX End-User Runtimes (June 2010)
This download provides the DirectX end-user redistributable that developers can include with their product.
839デフォルトの名無しさん
2021/09/11(土) 00:40:48.87ID:COtgG/wM DirectXランタイムって色んなバージョンの雑にまとめた全部入りだから数百MBあるけど
やろうと思えばDirectSetupとか使って必要な分だけ同梱してサイレントインストールとかできるぞ
ぶっちゃけ必要なのがD3DXのDLLだけだったら横に置いて配布しても今時誰にも怒られんけどな
Chromeとか堂々とやってたし
もっともDirectXランタイムはdeprecatedされかかってるレベルのレガシー物件だし
可能ならD3D11にしてDirectXTKとか使った方がいいけど
やろうと思えばDirectSetupとか使って必要な分だけ同梱してサイレントインストールとかできるぞ
ぶっちゃけ必要なのがD3DXのDLLだけだったら横に置いて配布しても今時誰にも怒られんけどな
Chromeとか堂々とやってたし
もっともDirectXランタイムはdeprecatedされかかってるレベルのレガシー物件だし
可能ならD3D11にしてDirectXTKとか使った方がいいけど
840デフォルトの名無しさん
2021/09/11(土) 03:32:20.18ID:8euuf7tr C#
public DataTable dT { get; } = new DataTable();
XAML
<Window x:Class="WpfApp.MainWindow"
x:Name="MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="Demo" Height="500" Width="500">
になってるとき、XAMLの
<DataGrid ItemsSource="{Binding dT, ElementName=MyWindow}/>
をコードビハインドで書くにはどうすればいいんですか?
this.DataGrid.ItemsSource = dT;
だとElementNameが指定できませんよね?
public DataTable dT { get; } = new DataTable();
XAML
<Window x:Class="WpfApp.MainWindow"
x:Name="MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="Demo" Height="500" Width="500">
になってるとき、XAMLの
<DataGrid ItemsSource="{Binding dT, ElementName=MyWindow}/>
をコードビハインドで書くにはどうすればいいんですか?
this.DataGrid.ItemsSource = dT;
だとElementNameが指定できませんよね?
841デフォルトの名無しさん
2021/09/11(土) 09:20:06.87ID:iptXMpo5 >>839
勉強になります。そうなんですよ。レガシーなDirectXはサポート終了で
廃れた技術なので、DLLを同梱して怒る人がいるとは思えません
でもライセンスはライセンスなので、無視はできません
サポート終了のランタイムをインストールしてもらうのは
考えものなので、やはり別の手段を取ることにしました
勉強になります。そうなんですよ。レガシーなDirectXはサポート終了で
廃れた技術なので、DLLを同梱して怒る人がいるとは思えません
でもライセンスはライセンスなので、無視はできません
サポート終了のランタイムをインストールしてもらうのは
考えものなので、やはり別の手段を取ることにしました
842デフォルトの名無しさん
2021/09/12(日) 07:46:49.64ID:nJGdH/R7843デフォルトの名無しさん
2021/09/12(日) 09:30:43.37ID:x3+6FKDq >>839
同意
同意
844デフォルトの名無しさん
2021/09/12(日) 09:31:51.33ID:PzFjh7Et >>840
SetBinding
SetBinding
845デフォルトの名無しさん
2021/09/12(日) 11:02:35.52ID:CGi/+BiI >>842
できました、ありがとうございます。ただ、ElementNameは指定しなくてもいいんですか?
(今回はMyWindowだから動いているかもしれないですけど、別のに変わったら動かなくなるとかありますか?)
<Window x:Class="DataTable_CodeBehind.MainWindow"
x:Name="MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DataTable_CodeBehind"
mc:Ignorable="d"
Title="MainWindow" Height="250" Width="400">
<Grid>
<!--<DataGrid Name="dataGrid" ItemsSource="{Binding dt, ElementName=MyWindow}" AutoGenerateColumns="True"/>-->
<DataGrid Name="dataGrid" ItemsSource="{Binding}" AutoGenerateColumns="True"/>
</Grid>
</Window>
public partial class MainWindow : Window
{
public DataTable dt { get; } = new DataTable();
public MainWindow()
{
dt.Columns.Add("MyColumn", typeof(string));
dt.Rows.Add("Row of data");
InitializeComponent();
dataGrid.DataContext = dt; // XAMLでItemsSource="{Binding dt, ElementName=MyWindow}"が指定されてたらコメントアウトしてもOK
// でも、ElementName=MyWindowは指定しなくてもいいの?
}
}
できました、ありがとうございます。ただ、ElementNameは指定しなくてもいいんですか?
(今回はMyWindowだから動いているかもしれないですけど、別のに変わったら動かなくなるとかありますか?)
<Window x:Class="DataTable_CodeBehind.MainWindow"
x:Name="MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DataTable_CodeBehind"
mc:Ignorable="d"
Title="MainWindow" Height="250" Width="400">
<Grid>
<!--<DataGrid Name="dataGrid" ItemsSource="{Binding dt, ElementName=MyWindow}" AutoGenerateColumns="True"/>-->
<DataGrid Name="dataGrid" ItemsSource="{Binding}" AutoGenerateColumns="True"/>
</Grid>
</Window>
public partial class MainWindow : Window
{
public DataTable dt { get; } = new DataTable();
public MainWindow()
{
dt.Columns.Add("MyColumn", typeof(string));
dt.Rows.Add("Row of data");
InitializeComponent();
dataGrid.DataContext = dt; // XAMLでItemsSource="{Binding dt, ElementName=MyWindow}"が指定されてたらコメントアウトしてもOK
// でも、ElementName=MyWindowは指定しなくてもいいの?
}
}
846デフォルトの名無しさん
2021/09/12(日) 11:14:27.19ID:CGi/+BiI847デフォルトの名無しさん
2021/09/12(日) 11:28:19.94ID:CGi/+BiI しまった、連投すみません
>>842
dataGrid.DataContext = dt;
ではなくて、
dataGrid.ItemsSource = dt;
みたいにできるはずなんですがご存じないですか?
>>842
dataGrid.DataContext = dt;
ではなくて、
dataGrid.ItemsSource = dt;
みたいにできるはずなんですがご存じないですか?
848デフォルトの名無しさん
2021/09/12(日) 16:39:23.72ID:2cHj/0c+ >>846
それだとオーバーロードが別の
dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, "dt");
でいけない
840と同じなら
var bind = new Binding("dt"){ElementName = "MyWindow"};
dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, bind);
して呼び出してみるとか。外からなんでなんか間違えてるかも
でも目的が達成されたからいいかな
バインディング宣言の概要 - WPF .NET Framework | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/data/binding-declarations-overview?view=netframeworkdesktop-4.8
それだとオーバーロードが別の
dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, "dt");
でいけない
840と同じなら
var bind = new Binding("dt"){ElementName = "MyWindow"};
dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, bind);
して呼び出してみるとか。外からなんでなんか間違えてるかも
でも目的が達成されたからいいかな
バインディング宣言の概要 - WPF .NET Framework | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/data/binding-declarations-overview?view=netframeworkdesktop-4.8
849デフォルトの名無しさん
2021/09/12(日) 18:46:39.81ID:D2v+xufE そういやVM使わないWPFの挙動など殆ど把握していないわ
850デフォルトの名無しさん
2021/09/12(日) 20:02:22.06ID:CGi/+BiI >>848
仰る通り、
var bind = new Binding("dt"){ElementName = "MyWindow"};
dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, bind);
で行けました!
これで行けるなら{ }の中を変えていろいろ指定できそうですね。
# ちなみに、
# dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, "dt");
# は、DataGridは表示されるんですけど、
# ColumnもRowも表示されませんでした。
ありがとうございました!
仰る通り、
var bind = new Binding("dt"){ElementName = "MyWindow"};
dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, bind);
で行けました!
これで行けるなら{ }の中を変えていろいろ指定できそうですね。
# ちなみに、
# dataGrid.SetBinding(ItemsControl.ItemsSourceProperty, "dt");
# は、DataGridは表示されるんですけど、
# ColumnもRowも表示されませんでした。
ありがとうございました!
851デフォルトの名無しさん
2021/09/13(月) 13:34:55.60ID:1pSY0+gc INotifyPropertyChangedってもっと脳死で簡単にできないの
852デフォルトの名無しさん
2021/09/13(月) 13:41:22.00ID:8KbkkNk8 それを言ったらIEnumerableの方が頻出でもっと面倒では
853デフォルトの名無しさん
2021/09/13(月) 14:11:11.72ID:FY5gKLvy854デフォルトの名無しさん
2021/09/13(月) 14:41:19.39ID:OQ1a75jl >>853
更新の通知はどうするの
更新の通知はどうするの
855デフォルトの名無しさん
2021/09/13(月) 15:04:32.55ID:F74I8HoI >>851
VM用の基本クラス使ったら楽だと思うけど
VM用の基本クラス使ったら楽だと思うけど
856デフォルトの名無しさん
2021/09/13(月) 15:41:03.02ID:orh3RydC857デフォルトの名無しさん
2021/09/13(月) 15:53:20.23ID:ZNdqAxbM 結局WinUI3もWPFと実装方法は大して変わらないの?
858デフォルトの名無しさん
2021/09/13(月) 17:07:46.28ID:Z203dzwp859デフォルトの名無しさん
2021/09/13(月) 17:28:00.98ID:bEKVtUlw >>851
propfullとタイプしてからタブキー2回押すんだ
propfullとタイプしてからタブキー2回押すんだ
860デフォルトの名無しさん
2021/09/13(月) 17:29:13.28ID:u3iBp6jh ハッキリ言って個人レベルとか5000行未満のアプリならMVVMなんかより、ひたすらイベントパンドラで書いた方が見通しもいいし実は修正もしやすいよ。
VとVMがわかれててもC#てデスクトップのツールじゃメリットあまりないし。
ほぼ間違いなく同じ人間が書いてんだから。
別の人間がXamlだけ編集してるとか成功ケースないでしょう。
WPFは所詮デスクトップのツール向きで、商用アプリ向きではないし。
MがGUIでもコンソールでも変わらないAPIになるよう意識してればいいだけ。
VとVMがわかれててもC#てデスクトップのツールじゃメリットあまりないし。
ほぼ間違いなく同じ人間が書いてんだから。
別の人間がXamlだけ編集してるとか成功ケースないでしょう。
WPFは所詮デスクトップのツール向きで、商用アプリ向きではないし。
MがGUIでもコンソールでも変わらないAPIになるよう意識してればいいだけ。
861デフォルトの名無しさん
2021/09/13(月) 17:52:25.62ID:8KbkkNk8 Caliburn.MicroならPropertyChangedBaseが実装済み、例を示すと
private string _LogBox;
public string LogBox
{
get => _LogBox;
set => Set(ref _LogBox, value);
}
一方XAMLは
<TextBox x:Name="LogBox" />
これでLogBoxに何か入れるとテキストボックスに反映される
十分すぎるほど簡単に感じるけど・・・これすら無理な人いるかも知れない?
private string _LogBox;
public string LogBox
{
get => _LogBox;
set => Set(ref _LogBox, value);
}
一方XAMLは
<TextBox x:Name="LogBox" />
これでLogBoxに何か入れるとテキストボックスに反映される
十分すぎるほど簡単に感じるけど・・・これすら無理な人いるかも知れない?
862デフォルトの名無しさん
2021/09/13(月) 18:29:40.64ID:CYNkmf4m863デフォルトの名無しさん
2021/09/13(月) 20:22:16.87ID:4h53lU/m >>857
VMの書き方はだいたい同じだが、Viewでx:Bindが使えるからインテリセンスが効くし型のチェックもコンパイル時にやってくれる
あと、Viewから右クリックの「定義へ移動」でVMの変数定義に移動できる
VMの書き方はだいたい同じだが、Viewでx:Bindが使えるからインテリセンスが効くし型のチェックもコンパイル時にやってくれる
あと、Viewから右クリックの「定義へ移動」でVMの変数定義に移動できる
864デフォルトの名無しさん
2021/09/13(月) 21:03:21.49ID:/bWkDGfh しょぼいプログラムほどMVVMでの実装も楽だからINotifyPropertyChangedを避ける理由がよくわからない
865デフォルトの名無しさん
2021/09/13(月) 21:18:47.94ID:CYNkmf4m しょぼいから
スケールメリットでねーーんじゃね?
スケールメリットでねーーんじゃね?
866デフォルトの名無しさん
2021/09/13(月) 21:21:14.98ID:bEG2fzdP バインドしない人は文字−数値の変換も自分で書くの?
867デフォルトの名無しさん
2021/09/13(月) 21:46:08.83ID:9YR282N/868デフォルトの名無しさん
2021/09/13(月) 22:02:18.04ID:Dz4DY8v7 いまだにMVVMに親を殺されたようなのがいるね
イベントハンドラしこしこ書くのはもういやだよ
でもWPFはFrameをもっとMVVMフレンドリーに作ってほしかたよ
イベントハンドラしこしこ書くのはもういやだよ
でもWPFはFrameをもっとMVVMフレンドリーに作ってほしかたよ
869デフォルトの名無しさん
2021/09/13(月) 22:10:10.87ID:u3iBp6jh いや、知ってるからなんだけどw
ボダン押したら押したら更新する、同期性も何もない。
APIを呼ぶだけ。
大きくなる予定なし。
こんなのすらさえWVVMしだすっていうw
ボダン押したら押したら更新する、同期性も何もない。
APIを呼ぶだけ。
大きくなる予定なし。
こんなのすらさえWVVMしだすっていうw
870デフォルトの名無しさん
2021/09/13(月) 22:41:51.00ID:FSwgcC5n INotifyPropertyChangedとINotifyCollectionChangedの違いを知りたいです。
このサイトを参考に話します(Xamarinですけど):
https://qiita.com/furugen/items/18bd2a521d1fa9927212
これは
public class MemoData
{
public string Title
{
get;
set;
}
}
のTitleがプロパティだから、
public class MemoData : INotifyPropertyChangedなんですか?
もし、上のが
public class MemoData
{
public List<string> Title
{
get;
set;
}
}
だったら、
public class MemoData : INotifyCollectionChangedになりますか?
それとも、この場合はListからObservableCollectionに変更するだけで解決ですか?
ObservableCollectionが元々INotifyCollectionChangedを含んでいるのは知っています。
また、public class MemoData : INotifyCollectionChangedと書くケースは皆無ですか?
このサイトを参考に話します(Xamarinですけど):
https://qiita.com/furugen/items/18bd2a521d1fa9927212
これは
public class MemoData
{
public string Title
{
get;
set;
}
}
のTitleがプロパティだから、
public class MemoData : INotifyPropertyChangedなんですか?
もし、上のが
public class MemoData
{
public List<string> Title
{
get;
set;
}
}
だったら、
public class MemoData : INotifyCollectionChangedになりますか?
それとも、この場合はListからObservableCollectionに変更するだけで解決ですか?
ObservableCollectionが元々INotifyCollectionChangedを含んでいるのは知っています。
また、public class MemoData : INotifyCollectionChangedと書くケースは皆無ですか?
871デフォルトの名無しさん
2021/09/13(月) 23:16:04.60ID:Dz4DY8v7 何をしたいかによる
872デフォルトの名無しさん
2021/09/13(月) 23:44:39.21ID:CYNkmf4m873デフォルトの名無しさん
2021/09/14(火) 05:34:23.96ID:TNbC6wpH874デフォルトの名無しさん
2021/09/14(火) 08:22:12.46ID:Xw7cSOKQ875デフォルトの名無しさん
2021/09/14(火) 08:31:12.46ID:ix6qKsp0 MVVMは目的じゃない
876デフォルトの名無しさん
2021/09/14(火) 10:03:00.45ID:O0SG+hYH >>873
ケースを想定せずにOKも何もないでしょうに
ケースを想定せずにOKも何もないでしょうに
877デフォルトの名無しさん
2021/09/14(火) 12:11:35.18ID:MzGXbjCU コードビハインド禁止ゲームとか
アホの極み!
アホの極み!
878デフォルトの名無しさん
2021/09/14(火) 13:51:43.59ID:OUZkxtLl 今はPrismだけ使ってるけど、みんなReactiveProperty使ってるの?便利?
879デフォルトの名無しさん
2021/09/14(火) 19:55:37.76ID:jxlCGXSG >>874
もちろん、ポトペタやりたい人にとってはFormsがベストだしずっとそれを使い続けていればいい。
もちろん、ポトペタやりたい人にとってはFormsがベストだしずっとそれを使い続けていればいい。
880デフォルトの名無しさん
2021/09/14(火) 20:32:08.68ID:7Ijls0Z8 この辺は変な布教をした奴のせいでずっと尾を引いてるな
881デフォルトの名無しさん
2021/09/14(火) 21:59:50.08ID:GpK/E3pW882デフォルトの名無しさん
2021/09/14(火) 22:01:29.25ID:GpK/E3pW883デフォルトの名無しさん
2021/09/14(火) 22:05:51.96ID:bJ98HSzm 俺なんかWinFormsでやるときでさえReactiveProperty使ってMVVMやるようになってしまったよ
884デフォルトの名無しさん
2021/09/15(水) 01:05:39.31ID:jggBe0Ff ポトペタやりたいならノーコードローコードでいい
885デフォルトの名無しさん
2021/09/15(水) 06:31:36.42ID:4HoLv0k1886デフォルトの名無しさん
2021/09/15(水) 11:37:21.40ID:S1ATpspQ 煽り屋は下痢便食わせて多摩川にでも流すぞ
887デフォルトの名無しさん
2021/09/15(水) 12:22:16.17ID:jnuePZVr 君にはすべてのクラスに
void Update(bool force = true)
を書く事を許可しよう、頑張りたまえ
void Update(bool force = true)
を書く事を許可しよう、頑張りたまえ
888デフォルトの名無しさん
2021/09/15(水) 12:50:15.43ID:MMIM4SfG 言っている事は正しいしただの指摘、煽りではないだろ
889デフォルトの名無しさん
2021/09/15(水) 14:58:00.53ID:3TKYe9Fz890デフォルトの名無しさん
2021/09/15(水) 15:46:29.15ID:u+gVrdUN 理由もクソも、MVVMはそもそもWPFのデータバインディングを活用するために考案されたデザインパターン
双方向バインディングを使用しないなら定義上MVVMではない
双方向バインディングを使用しないなら定義上MVVMではない
891デフォルトの名無しさん
2021/09/15(水) 15:57:04.37ID:a6LjJ0wO やったこと無いけどFormsでもデータバインディングできるんじゃ?
892デフォルトの名無しさん
2021/09/15(水) 16:02:38.01ID:FpSMo0oE >>890
Forms+ReactivePropertyで双方向バインディングやってるけど
Forms+ReactivePropertyで双方向バインディングやってるけど
893デフォルトの名無しさん
2021/09/15(水) 17:02:45.49ID:3TKYe9Fz >>890
お前の言うMVVMの定義を教えてくれ
お前の言うMVVMの定義を教えてくれ
894デフォルトの名無しさん
2021/09/15(水) 17:05:49.55ID:QKlVFcsu 業界アキーテクチャ的には
双方向バインディングはバッドパターンだ
糞認定済み
双方向バインディングはバッドパターンだ
糞認定済み
895デフォルトの名無しさん
2021/09/15(水) 17:09:11.47ID:QKlVFcsu react等の先端frameworkに比べると
思想的にかなり見劣りする
思想的にかなり見劣りする
896デフォルトの名無しさん
2021/09/15(水) 17:28:11.46ID:wmRmGPP4 次はMVUだったっけ?
897デフォルトの名無しさん
2021/09/15(水) 18:32:29.56ID:IqGZburM 実行ファイル(.exe)が出力できて将来性のある
プラットフォームってやっぱりWPFしかないのかな?
プラットフォームってやっぱりWPFしかないのかな?
898デフォルトの名無しさん
2021/09/15(水) 18:36:43.11ID:R2NlFkLx 将来性はないです
899デフォルトの名無しさん
2021/09/15(水) 18:36:44.91ID:jnuePZVr 最先端はなんだろうAvaroniaとか?
SilverlightもWindows Phoneも、昔はいろいろあったよね
SilverlightもWindows Phoneも、昔はいろいろあったよね
900デフォルトの名無しさん
2021/09/15(水) 18:47:44.45ID:EcTTP5JU >>897
WPFやるぐらいなら今後はWinUI3じゃ?
WPFやるぐらいなら今後はWinUI3じゃ?
901デフォルトの名無しさん
2021/09/15(水) 19:00:42.07ID:IqGZburM902デフォルトの名無しさん
2021/09/15(水) 20:53:25.10ID:bT20IgU4903デフォルトの名無しさん
2021/09/15(水) 21:01:46.66ID:u4qV17E7904デフォルトの名無しさん
2021/09/15(水) 21:09:50.88ID:jnuePZVr すでに10年以上過ぎてて将来性とか言われても
枯れてる方に分類されると思うんだけど、一体どんな期待してるんだ
枯れてる方に分類されると思うんだけど、一体どんな期待してるんだ
905デフォルトの名無しさん
2021/09/15(水) 21:13:29.91ID:FpSMo0oE >>903
その方向の連携もFormsでできますけど
その方向の連携もFormsでできますけど
906デフォルトの名無しさん
2021/09/15(水) 21:43:58.90ID:u4qV17E7907デフォルトの名無しさん
2021/09/15(水) 22:43:25.21ID:FpSMo0oE >>906
もちろんVの表示はVMとMに依存してるよ
もちろんVの表示はVMとMに依存してるよ
908デフォルトの名無しさん
2021/09/15(水) 23:04:57.93ID:jnuePZVr 依存っていうからてっきり依存関係プロパティの話かと思ったら、全然違ってた
909デフォルトの名無しさん
2021/09/15(水) 23:17:22.66ID:u4qV17E7910デフォルトの名無しさん
2021/09/15(水) 23:30:44.49ID:qRxK7g6Y Vで必要なMを作るんだから依存しないわけがない
911デフォルトの名無しさん
2021/09/15(水) 23:49:11.29ID:u4qV17E7 >Vで必要なMを作るんだから依存しないわけがない
「依存」の意味が通じてないとそもそも会話にならんな。
「依存」の意味が通じてないとそもそも会話にならんな。
912デフォルトの名無しさん
2021/09/15(水) 23:50:13.08ID:VJ+jTlKE913デフォルトの名無しさん
2021/09/15(水) 23:54:05.43ID:VJ+jTlKE ObservableCollectionがAddRangeに対応して、
主要なWPFコントロールがAddイベントにてe.NewItemを同時に複数受け付けてくれれば神アプデなんだけどMSやってくれないかな。
ObservableCollection関連は、各ItemへのProperyChangedの登録/解除が超絶に面倒臭いんだけど、ReactivePropertyだとお手軽になる?
主要なWPFコントロールがAddイベントにてe.NewItemを同時に複数受け付けてくれれば神アプデなんだけどMSやってくれないかな。
ObservableCollection関連は、各ItemへのProperyChangedの登録/解除が超絶に面倒臭いんだけど、ReactivePropertyだとお手軽になる?
914デフォルトの名無しさん
2021/09/16(木) 00:20:59.60ID:eraz+HIm >>911
なんかFormsでMVVMできないことにするために適当な理屈をウダウダ後付けで言ってんな
なんかFormsでMVVMできないことにするために適当な理屈をウダウダ後付けで言ってんな
915デフォルトの名無しさん
2021/09/16(木) 00:38:24.68ID:tuIfCOpX |\/| W(
916デフォルトの名無しさん
2021/09/16(木) 01:24:47.16ID:fPzViGfa917デフォルトの名無しさん
2021/09/16(木) 01:54:46.93ID:fPzViGfa >>913
極力簡易記述できるようにしてると思うよ
極力簡易記述できるようにしてると思うよ
918デフォルトの名無しさん
2021/09/16(木) 03:51:43.21ID:x4RkoMHs おまえら酒どんくらい飲んでる?
919デフォルトの名無しさん
2021/09/16(木) 08:50:08.52ID:EaJ+z9b7 MVVMはXAMLやFXMLといったマークアップ言語があって初めて実現する
XAMLを信じないものに未来はありません
XAMLは偉大にして唯一神と3回唱えるのです
XAMLを信じないものに未来はありません
XAMLは偉大にして唯一神と3回唱えるのです
920デフォルトの名無しさん
2021/09/16(木) 12:17:15.94ID:jImn+LiB ObservableCollectionで個々のItemのPropertyChangedを取りたいときって、
NotifyCollectionChangedAction.Add・RemoveにPropertyChangedのイベント購読を登録・解除
しますよね?
その配列をClear()しちゃったら、Removeでの解除を通らないと思うのですが、
この場合、メモリリークしますか?
NotifyCollectionChangedAction.Add・RemoveにPropertyChangedのイベント購読を登録・解除
しますよね?
その配列をClear()しちゃったら、Removeでの解除を通らないと思うのですが、
この場合、メモリリークしますか?
921デフォルトの名無しさん
2021/09/16(木) 12:57:51.05ID:eraz+HIm >>920
NotifyCollectionChangedAction.Reset飛んでこない?
NotifyCollectionChangedAction.Reset飛んでこない?
922デフォルトの名無しさん
2021/09/16(木) 13:30:05.34ID:jImn+LiB >>921
自分も最初はReset飛んできたとき解除すればいいと思ったんですが、配列がすでに消去済みなので解除できないことに気づきました。
各ItemのコンストラクタとDisposeに登録解除を書くしかないのかな。
自分も最初はReset飛んできたとき解除すればいいと思ったんですが、配列がすでに消去済みなので解除できないことに気づきました。
各ItemのコンストラクタとDisposeに登録解除を書くしかないのかな。
923デフォルトの名無しさん
2021/09/16(木) 14:17:14.99ID:sOgFGA/J924デフォルトの名無しさん
2021/09/16(木) 14:20:02.81ID:sOgFGA/J ああ、バインディングはMVVMの構成要件じゃないのね
ますますお前の意見がわからんわ
ますますお前の意見がわからんわ
925デフォルトの名無しさん
2021/09/16(木) 14:31:38.92ID:eraz+HIm >>922
ObservableCollectionに
protected override void ClearItems()
ってのがあるから
ObservableCollectionの派生クラス作ってClearItems()をオーバーライド
ClearItemsが呼ばれたタイミングで購読解除すればいいと思う。
ObservableCollectionに
protected override void ClearItems()
ってのがあるから
ObservableCollectionの派生クラス作ってClearItems()をオーバーライド
ClearItemsが呼ばれたタイミングで購読解除すればいいと思う。
926デフォルトの名無しさん
2021/09/16(木) 14:37:43.93ID:eraz+HIm >>922
public class MyCollection<T> : ObservableCollection<T>
{
protected override void ClearItems()
{
//ここで購読解除
base.ClearItems();
}
}
public class MyCollection<T> : ObservableCollection<T>
{
protected override void ClearItems()
{
//ここで購読解除
base.ClearItems();
}
}
927デフォルトの名無しさん
2021/09/16(木) 15:14:51.39ID:jImn+LiB >>926うおーすごい。stack overflowでもそこまでドンピシャな回答無かったです。
ありがとうございました。
ありがとうございました。
928デフォルトの名無しさん
2021/09/16(木) 15:50:04.83ID:4N92z3xf コレクションをオーバライドして
改良するってアーキテクチャ知らない人多いね
改良するってアーキテクチャ知らない人多いね
929デフォルトの名無しさん
2021/09/16(木) 18:38:42.38ID:EvK5hxPz 結論としては、超絶に面倒臭いって事か
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★8 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【音楽】松山千春、女性っぽい名前に親恨んだ「名簿には必ず女の方に入ってる。情けなかったりもしたけどね」 [湛然★]
- 【画像】ドw童貞はw絶ッッッ対"1"を選ぶ卓球 J Kのお食事会の写真見つけちゃいましたwwwwwwwwwww [904880432]
- 【悲報】30代独身女性「結婚や成功してる友達との差は開く一方、このまま1人で生きて淘汰される人生だと気づいて絶望してる…406万いいね [483447288]
- ワイの名字が 女鹿 (めが)なんやが娘の名前で良いの有るる?
- 【動画】韓国新人kpopグループHearts2Heartsさんの投稿、これが卑猥に見える人は脳が壊れていると話題に [963243619]
- 半日勤務だけど出勤したくない🥺
- 【埼玉】34歳無職、置き配📦を盗みまくる!その数、400点!😱 [718678614]
