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
■ このスレッドは過去ログ倉庫に格納されています
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
778デフォルトの名無しさん
2021/08/30(月) 10:45:00.65ID:ptT0Gy37 flutterも数年かなという印象やな。
ぼっと作ってはWebエンジニアが飛びついて、
2、3年で古くしていくってもうアホなのカスなのって感じ。
あんなのと無縁で幸せだわ。
ぼっと作ってはWebエンジニアが飛びついて、
2、3年で古くしていくってもうアホなのカスなのって感じ。
あんなのと無縁で幸せだわ。
779デフォルトの名無しさん
2021/08/30(月) 14:12:46.83ID:a7szkEqk ほんそれ
780デフォルトの名無しさん
2021/08/30(月) 15:19:24.77ID:q7ZGBIFp Googleだけでも、少なくとも Go, Kotlin, Dart の3つの言語作ってしまったし。
GoogleDriveやOneDriveなどの多数のOnlineStorageをまとめて制御できるライブラリ
がGoogle自らGoで書いているが、Flutterでそれを使いたくても橋渡しが
難しいだろうし、全部推進という訳には行くまい。
GoogleDriveやOneDriveなどの多数のOnlineStorageをまとめて制御できるライブラリ
がGoogle自らGoで書いているが、Flutterでそれを使いたくても橋渡しが
難しいだろうし、全部推進という訳には行くまい。
781デフォルトの名無しさん
2021/08/30(月) 15:21:53.98ID:q7ZGBIFp どれか一つの言語だけに集中させないことにはどうにもならないということ。
782デフォルトの名無しさん
2021/08/30(月) 15:23:45.62ID:q7ZGBIFp Cはまだ、どの言語からも呼び出せる方法が存在していることが多いし、また、
Wasm化しても小さいしまだいい。
Goで書かれたライブラリはWasm化したらサイズも大きいし、多言語から
の呼び出し方も自明では無いし困る。
Wasm化しても小さいしまだいい。
Goで書かれたライブラリはWasm化したらサイズも大きいし、多言語から
の呼び出し方も自明では無いし困る。
783デフォルトの名無しさん
2021/08/30(月) 20:52:43.38ID:0LjWH8LC >>773
購買や経費管理といった、昔ならクラサバでやっていたような「業務システム」は10年どころか
20年くらい前からWeb化されていたけど、業務で使うソフトウェアってそればかりじゃないわけで。
そのへんは業種業態によって変わるだろう。うちはメーカーだけど内製のツールはまだまだ
スタンドアロンが多いな。つか、そういうのはわざわざWeb化するメリットも少なかったり。
購買や経費管理といった、昔ならクラサバでやっていたような「業務システム」は10年どころか
20年くらい前からWeb化されていたけど、業務で使うソフトウェアってそればかりじゃないわけで。
そのへんは業種業態によって変わるだろう。うちはメーカーだけど内製のツールはまだまだ
スタンドアロンが多いな。つか、そういうのはわざわざWeb化するメリットも少なかったり。
784デフォルトの名無しさん
2021/08/30(月) 21:22:51.90ID:N02FEXFE785デフォルトの名無しさん
2021/08/30(月) 22:23:36.00ID:IRMGlM4T 確かに、パッケージ屋は個別業務開発とは趣きが違うから想像はできるけど、
クラウド化は推進してないの?
ちょっと前に出入りしたパッケージ屋さんだと、昔はオンプレで運用してたらしいけど、
今はデフォがクラウドでマルチテナントで運用してたねー−
オンプレとかデスクトップクライアントとかは個別対応になる感じだったかな
クラウド化は推進してないの?
ちょっと前に出入りしたパッケージ屋さんだと、昔はオンプレで運用してたらしいけど、
今はデフォがクラウドでマルチテナントで運用してたねー−
オンプレとかデスクトップクライアントとかは個別対応になる感じだったかな
786デフォルトの名無しさん
2021/08/31(火) 00:30:57.16ID:FDZ2966r クラウド化が何を指してるのか分からんが
AzureもAWSも使ってバーチャルデスクトップ運用してるところが多いよ
今後はAzure Virtual DesktopだかでiPadとかChromeBookがクライアントの案件増えるっぽい
AzureもAWSも使ってバーチャルデスクトップ運用してるところが多いよ
今後はAzure Virtual DesktopだかでiPadとかChromeBookがクライアントの案件増えるっぽい
787デフォルトの名無しさん
2021/08/31(火) 01:12:13.43ID:CVnDLQG8 使いにくそう
788デフォルトの名無しさん
2021/08/31(火) 12:18:58.46ID:T79gwdP9 >>780
Kotlinはgoogleじゃないような
Kotlinはgoogleじゃないような
789デフォルトの名無しさん
2021/08/31(火) 12:36:05.84ID:OM0KfKDz Formsなのですが、FileStreamで一つのファイルの更新って難しいですか?
今、壁になっていることは
ファイルを読み込む
↓
読み込んだファイルがロック状態になる
↓
書き込もうとしても書き込めない
読み込むファイルと書き込むファイルが違えば可能なのですが、
これってよくあるテンポラリーファイルなどを複製して対応するしかないのでしょうか
今、壁になっていることは
ファイルを読み込む
↓
読み込んだファイルがロック状態になる
↓
書き込もうとしても書き込めない
読み込むファイルと書き込むファイルが違えば可能なのですが、
これってよくあるテンポラリーファイルなどを複製して対応するしかないのでしょうか
790デフォルトの名無しさん
2021/08/31(火) 12:43:21.40ID:obbXOwAL >>789
streamはそういう仕様。
streamはそういう仕様。
791デフォルトの名無しさん
2021/08/31(火) 12:49:11.17ID:OM0KfKDz792デフォルトの名無しさん
2021/08/31(火) 12:51:16.63ID:8qO1h2Cp 試してないけど読み込み側FileStreamのコンストラクタでFileShare指定すればいいんじゃないの
793デフォルトの名無しさん
2021/08/31(火) 13:05:05.10ID:OM0KfKDz794デフォルトの名無しさん
2021/08/31(火) 17:02:54.56ID:0Y8XnIWp StreamReader/Writerのコンストラクタに渡せん?(あんま覚えてない
795デフォルトの名無しさん
2021/08/31(火) 18:21:02.48ID:b4XuI4dD つうか、
1.元ファイルを読みながらテンポラリファイルに書き込む
2.元ファイルを削除
3,テンポラリファイルを元ファイルの名前にリネーム
この手順が定番だが、これをやらないと書き込みエラーでファイルを失うよ
1.元ファイルを読みながらテンポラリファイルに書き込む
2.元ファイルを削除
3,テンポラリファイルを元ファイルの名前にリネーム
この手順が定番だが、これをやらないと書き込みエラーでファイルを失うよ
796デフォルトの名無しさん
2021/08/31(火) 20:42:24.00ID:S8r07VdU 読み込むファイル自体に、書き込む香具師は、頭おかしい。
エンジニアじゃない
安全配慮義務違反
エンジニアじゃない
安全配慮義務違反
797デフォルトの名無しさん
2021/08/31(火) 21:01:42.89ID:jRAzxqNw 不正アクセス禁止法で逮捕されるぞ
798デフォルトの名無しさん
2021/08/31(火) 22:46:50.56ID:521GQ/2f 追記されていくだけのログとかならFileShare.Readつけても大丈夫だけどな
799デフォルトの名無しさん
2021/09/01(水) 01:06:46.56ID:bQ9HbNuf どれもこれも全部サクラエディタって奴が悪いんだ
800デフォルトの名無しさん
2021/09/01(水) 04:15:02.36ID:4UYQNKo4 >>795
元ファイル削除しないで新規ファイルをリネームで上書きできない?
元ファイル削除しないで新規ファイルをリネームで上書きできない?
801デフォルトの名無しさん
2021/09/01(水) 05:21:00.61ID:Vv+SLpMR WPF関係ある?
802デフォルトの名無しさん
2021/09/02(木) 07:06:57.92ID:t5Xnv5c8 Windows App SDK 0.8.3
803デフォルトの名無しさん
2021/09/08(水) 11:42:39.52ID:txwdym3f MAUIもxamlなの?
804デフォルトの名無しさん
2021/09/08(水) 11:55:27.04ID:YKU1gQn9 >>803
Xamarin.Formsの発展形がMAUIなんだし、xamlが基本になるんじゃね?
Xamarin.Formsの発展形がMAUIなんだし、xamlが基本になるんじゃね?
805デフォルトの名無しさん
2021/09/08(水) 13:52:14.51ID:txwdym3f806デフォルトの名無しさん
2021/09/08(水) 15:47:04.39ID:AltSwm2n >>805
イミフ
イミフ
807デフォルトの名無しさん
2021/09/08(水) 16:46:08.35ID:ZH44DFyL >>805
雑魚ww
雑魚ww
808デフォルトの名無しさん
2021/09/08(水) 21:07:13.93ID:4MNBog85 >>805
意味わかってなさそう
意味わかってなさそう
809デフォルトの名無しさん
2021/09/08(水) 22:37:10.46ID:2xQeb5pF XAMLもIntellisenseで自動で埋めてくれんかな
ItemsSource{Binding = Data}
とか書いた時点でDataがどんな型か読み取って適当に表示してくれればいいのに
例えばList<int>だったら自動で要素まで分解して表示するとかさ
例えばList<List<int>>だったら自動で2×2で要素まで分解して表示するとかさ
ComboBoxやListBoxだって適当に良きに計らえよ
いちいち打つ側が指定してやらんのが面倒くさい
ItemsSource{Binding = Data}
とか書いた時点でDataがどんな型か読み取って適当に表示してくれればいいのに
例えばList<int>だったら自動で要素まで分解して表示するとかさ
例えばList<List<int>>だったら自動で2×2で要素まで分解して表示するとかさ
ComboBoxやListBoxだって適当に良きに計らえよ
いちいち打つ側が指定してやらんのが面倒くさい
810デフォルトの名無しさん
2021/09/08(水) 23:02:45.97ID:cN4s0i9P d:DataContext="{d:DesignInstance ...
で行けたような。
で行けたような。
811デフォルトの名無しさん
2021/09/09(木) 04:15:16.01ID:J/vtDPz0 VS2022でマウスポインタを上に載せたら型が表示されたけど
812デフォルトの名無しさん
2021/09/09(木) 08:56:30.61ID:QA/522jQ813デフォルトの名無しさん
2021/09/09(木) 09:26:45.67ID:1R8XfWJw >>809
UWPとWinUIのx:Bindはインテリセンス効くよ
UWPとWinUIのx:Bindはインテリセンス効くよ
814デフォルトの名無しさん
2021/09/09(木) 13:08:42.17ID:2xcgEBdF 終わったプラットフォームと始まる前のプラットフォームの話してるやつなんなの?
815デフォルトの名無しさん
2021/09/09(木) 13:19:26.52ID:We0c3TJB MSのUIプラットフォームは始まる前に終わるので
816デフォルトの名無しさん
2021/09/09(木) 14:43:39.58ID:W15P/1XI 署名なしの野良配布で開発モードONはなしで、
mauiは普通に野良配布できるの?
mauiは普通に野良配布できるの?
817デフォルトの名無しさん
2021/09/09(木) 16:01:43.06ID:o5mbqb9U 名前を変えただけの悪名高きxamarinに何を期待してるんだか
818デフォルトの名無しさん
2021/09/09(木) 16:10:33.92ID:mXrNvNu+ Xamarinと違って一からMSが開発するから期待してる
819デフォルトの名無しさん
2021/09/09(木) 20:46:17.54ID:lJRSMQ7p 何でもいいから一つにまとめろや
820デフォルトの名無しさん
2021/09/09(木) 21:10:08.64ID:q0TKbS94 >>814
じゃあ終わってないプラットフォームの話して。
じゃあ終わってないプラットフォームの話して。
821デフォルトの名無しさん
2021/09/09(木) 22:20:16.73ID:wRnzaYRw このスレで扱うのが適切な、始まっててかつ終わってないプラットフォームって実は存在しないのでは?
822デフォルトの名無しさん
2021/09/09(木) 22:43:15.68ID:d4+NBsbj MSのコードプラットフォームの主力がVSCodeに移ってもう長いし、
そもそもMSがオープンソースに舵切ってから相当たってるのに、
MSからまともなライブラリのが出てくる見込みはねえぞ。
そもそもMSがオープンソースに舵切ってから相当たってるのに、
MSからまともなライブラリのが出てくる見込みはねえぞ。
823809
2021/09/09(木) 23:45:47.17ID:RORfDysf >>810-813
♪あ〜〜〜〜〜〜り〜がと〜〜〜〜う
♪あ〜〜〜〜〜〜り〜がと〜〜〜〜う
XAMLでIntellisenseできました
スニペットでddcも行けました
UWPとWinUIはまた今度で
♪あ〜〜〜〜〜〜り〜がと〜〜〜〜う
♪あ〜〜〜〜〜〜り〜がと〜〜〜〜う
XAMLでIntellisenseできました
スニペットでddcも行けました
UWPとWinUIはまた今度で
824デフォルトの名無しさん
2021/09/10(金) 01:39:42.95ID:7ibsVcuq このスレ見てる時点でWindowsに絞ってる人間なんだから先にあるのはMAUIじゃなくてWinUI 3だよね
825デフォルトの名無しさん
2021/09/10(金) 03:37:48.26ID:QQ5PLj0w >>821
うん、存在しないね
うん、存在しないね
826デフォルトの名無しさん
2021/09/10(金) 06:02:04.48ID:Lruqlpqj827デフォルトの名無しさん
2021/09/10(金) 11:27:22.51ID:RmQ4ECJ8 MAUIとWinUIって開発工程においてはどれくらい違うの?
828デフォルトの名無しさん
2021/09/10(金) 11:37:57.48ID:mLV+UlPw XAMLの
<ListBox ItemsSource="{Binding MyItems, ElementName=MyWindow}"/>
をコードビハインドで書くとどうなりますか?
this.listBox.ItemsSource = MyItems;
のようになるのは分かっても、ElementNameの指定方法が分かりません。
<ListBox ItemsSource="{Binding MyItems, ElementName=MyWindow}"/>
をコードビハインドで書くとどうなりますか?
this.listBox.ItemsSource = MyItems;
のようになるのは分かっても、ElementNameの指定方法が分かりません。
829デフォルトの名無しさん
2021/09/10(金) 11:59:06.77ID:L+jftwLU >>828
なんかおもいっきり違うな...
なんかおもいっきり違うな...
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使ってるの?便利?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★2 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 【画像】消えた美人女優 上原多香子さん(42)、沖縄で目撃される [牛丼★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- 【高市悲報】JA、発狂www「臨時に経費率を下げるので、どうかお米券を使ってください」 [246620176]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 高市早苗、森元総理の愛人だった [347751896]
- CoCo壱で毎回カレー食わない
- 【高市朗報】中国、歴史上日本に一度も侵攻したことがない親日国だった [931948549]
- 新たなる弱男判定法見つかるwwwwwwwwwwwwwwwwww
