トップページtech
996コメント249KB

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part15

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/02/03(日) 12:52:38.89
ユーザーインターフェースシステム、Windows Presentation Frameworkについて微に入り語るスレ。

Visual Studio 2012 & 2010
http://www.microsoft.com/visualstudio/jpn/downloads
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&;displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&;displaylang=ja
Microsoft .NET Framework 4.5
http://msdn.microsoft.com/ja-jp/library/vstudio/5a4x27ek.aspx

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part14
http://toro.2ch.net/test/read.cgi/tech/1351322296/

関連スレ
Microsoft Silverlight その9
http://toro.2ch.net/test/read.cgi/tech/1321150267/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0153デフォルトの名無しさん2013/02/08(金) 00:18:31.10
>>152
そこまでしてイベントハンドラを使わない意味が分からない
その点には触れてないし分かりづらいだけで実質イベントハンドラそのものじゃねえか
0154デフォルトの名無しさん2013/02/08(金) 00:19:26.47
Viewは本来無くてもいいってことを理解してもらわないと
01551242013/02/08(金) 00:19:49.86
>>139
そういうことなんですか?
2つ目はどうにもできないのでしょうか?
0156デフォルトの名無しさん2013/02/08(金) 00:20:49.69
なんか実用度外視だよな
0157デフォルトの名無しさん2013/02/08(金) 00:21:56.38
VMに何でもさせるんじゃないよ
VからみるとVMもMも変わらない
ただのモデルにしか見えない

V → (VM+M)
0158デフォルトの名無しさん2013/02/08(金) 00:24:58.04
MVVMのこういう記事読むと
 本 末 転 倒
この言葉が頭に浮かぶことがなんと多いことか
0159デフォルトの名無しさん2013/02/08(金) 00:27:51.07
V+VM M
こうだろ?
0160デフォルトの名無しさん2013/02/08(金) 00:30:01.33
>>159
それは勝手に人間様がそう思ってるだけで
Vから見たらVMはV側じゃないM側

ビジネスロジックが〜って言ってるのは人間だけでコード上は
VMはVの下請けじゃない
0161デフォルトの名無しさん2013/02/08(金) 00:33:37.55
あらゆる物をゴールデンハンマーで解決しようとすんのは雑技よね
あるいはcode golfに近いか
そんなもん初心者に読ませないで欲しい
0162デフォルトの名無しさん2013/02/08(金) 00:34:59.83
>>160
でも実際の役割はそうだろ?
VMでVが表示するためのプロパティ作ってるんだから
0163デフォルトの名無しさん2013/02/08(金) 00:40:24.89
いいえ

VからM見る(binding)のも
VからVM見るのも
同じ
0164デフォルトの名無しさん2013/02/08(金) 00:44:16.12
セグメント?が変わると区分も変わるだろうけど…
0165デフォルトの名無しさん2013/02/08(金) 12:08:18.69
視点を変えればそう捉えることもできるだろう
仮想マシン側からILを見ると、C#もVBも大差ないようにね
0166デフォルトの名無しさん2013/02/08(金) 12:15:08.11
>>163
宗教論争してもしょうがないけど自分はVMはVに画面表示に専念させる為のブリッジだと思うけどね。テストなども考慮した上での。
0167デフォルトの名無しさん2013/02/08(金) 12:24:04.25
XAMLでColorAnimationのStoryboardを定義したとして、実行時に値によってFromの色を変えるような事って出来たっけ?
具体的には値が変わった時、前よりも値が増えた時と減った時で色を変えようとしてます。
変わった時点でその前のStoryboardを止めて新しいのをスタートさせてる。
コードビハインドで書いた奴は思った通りに動いたけれど。
定義だけXAMLでそのスタート、ストップはコードビハインドでも構いません。
0168デフォルトの名無しさん2013/02/08(金) 12:33:39.16
またお前か。動いたんだしそれでいんじゃねーの
0169デフォルトの名無しさん2013/02/08(金) 14:03:01.94
より良い書き方を追求するのは良いことだろ( ´Д`)y━・~~
0170デフォルトの名無しさん2013/02/08(金) 14:05:13.88
俺は良いと思わないので却下
0171デフォルトの名無しさん2013/02/08(金) 15:37:26.03
なぜWPFのコントロールはvisibility=falseで表示になるんでしょう?
0172デフォルトの名無しさん2013/02/08(金) 15:39:23.38
>>170
知らない無能は黙ってればよいよ。
0173デフォルトの名無しさん2013/02/08(金) 16:15:30.86
>> 171

Visibilityに設定できるのはVisibility列挙値(Visible,Hidden,Collapsed)だけ

それ以外の値(true,falseとか)は無視されるので
デフォルト価のVisibility.Visibleになってるだけだな
0174デフォルトの名無しさん2013/02/08(金) 16:20:33.09
DataGrid_CellEditEndingイベントの引数eから、DatagridCellの参照を得るのは無理なのでしょうか

e.EditingElement as DataGridCell

はnullでした
0175デフォルトの名無しさん2013/02/08(金) 16:30:36.74
デバッガで止めて引数一通り確認することから始めれば
0176デフォルトの名無しさん2013/02/08(金) 16:31:15.89
>>173
!!!
ありがとうございました。
0177デフォルトの名無しさん2013/02/08(金) 16:36:33.61
>>175
e.RowからDataGridRow
e.ColumnからDataGridTextColumn

が取れました
0178デフォルトの名無しさん2013/02/08(金) 17:22:09.09
createGraphicsがないんだが
0179デフォルトの名無しさん2013/02/08(金) 17:37:52.46
急にレスが増えたNE
0180デフォルトの名無しさん2013/02/08(金) 18:27:00.12
そうですか無いですか
無いんですよWPFにはそういうの
絶望した?した?
0181デフォルトの名無しさん2013/02/08(金) 19:54:04.21
依存関係プロパティの簡単な作り方ってあります?
0182デフォルトの名無しさん2013/02/08(金) 20:09:21.03
{get;set;}みたいなものは無いのか?ってことならそんなもんないよ
言語が支援してるわけじゃねーもん
0183デフォルトの名無しさん2013/02/08(金) 20:19:01.12
propdpと打ってTab二回
0184デフォルトの名無しさん2013/02/08(金) 20:26:02.36
あの宣言の面倒くささには
IDEがあるにしても限度は必要だと感じてしまうよな
0185デフォルトの名無しさん2013/02/08(金) 21:41:56.33
新規で作った依存関係プロパティのセッターで初期から用意してある依存関係プロパティを操作したいんだけど、これはオーバーライドする感じ?
0186デフォルトの名無しさん2013/02/08(金) 22:37:59.28
かずきさん、ここ見てみみたいなんで要望あるんですが
Rx入門v0.1.pdfをもう少し初心者向けの解説増やしてもらえませんか?
具体的にはイベントに関してなんですが、neueさん等もWPFやWP前提でFormでどう使えばいいのか実装例含めて解説して欲しいです。
0187デフォルトの名無しさん2013/02/08(金) 22:40:23.07
ツイッターかブログで直接言えや
0188デフォルトの名無しさん2013/02/08(金) 22:41:47.16
こりゃあからさまに宣伝だな。臭過ぎる。
0189デフォルトの名無しさん2013/02/08(金) 22:53:46.06
悲しいことにRxはもうオワコンなんだよ・・・
0190デフォルトの名無しさん2013/02/08(金) 22:54:44.25
>>187-188
文句あるならお宅らが答えてもいいんじゃよ?
答えられないでしょ?
0191デフォルトの名無しさん2013/02/08(金) 23:02:27.51
WPF自体 将来性はどうなの?
このままフォームアプリケーションと同時でサポートされていく感じ?

それともsliverlightのように死亡確定?
01921852013/02/08(金) 23:11:00.84
ちょっと書いてみたんですが、どこが間違っているか教えて下さい。
http://ideone.com/LoSjNb
0193デフォルトの名無しさん2013/02/08(金) 23:13:35.15
>>191
そもそもクライアントアプリに将来性がない
MSはHTML5を全面に押し出して今絶好調みたいだからこのままどんどんwebにシフトしていく
0194デフォルトの名無しさん2013/02/08(金) 23:13:59.83
誰にもわからないと思うよ
このまま微調整だけくわえられていくのか
大幅に変わるのかも分からない
今のままだとフェードアウト確定

言語からサポートを受けるようになれば…
0195デフォルトの名無しさん2013/02/08(金) 23:36:52.60
まあとれも深追いしないのがいい
0196デフォルトの名無しさん2013/02/08(金) 23:39:53.46
>>192
プロパティの setter じゃなくて、DependencyProperty.Register に渡す PropertyMetadata の PropertyChangedCallback 内で処理する。
setter、getter はユーザーコードから使いやすくするための単なるラッパーで、フレームワークからは呼び出されない
(フレームワークがプロパティ値を設定・取得するときは SetValue・GetValue が使われる)。
01971852013/02/09(土) 00:04:16.26
>>196
ありがとうございます。
そういうことだったんですね、修正しました。
http://ideone.com/Naxl7H

でも、静的なのにどこに値を格納してるのかわかりません。
0198デフォルトの名無しさん2013/02/09(土) 00:07:24.91
WPFとしては分からんけどXAMLとしてはしばらく無くならんとおもうけどね。
多分WinRTでデスクトップアプリも作れるようにすると思うし。

HTMLはそれだけって風にはならなそうな気がするけど。
WinMDの実装技術としてHTMLも選べてネイティブと一緒にできるってのが正しいあり方な気がするわ

TypescriptでXAMLをナチュラルに使えるようになると面白いんだが。
01991962013/02/09(土) 00:29:14.67
>>197 のコード、ValidateValueCallback じゃなくて、PropertyMetadata のコンストラクタに渡す PropertyChangedCallback を使う。間違えてる。
ValidateValueCallback は値の検証用。

WPF フレームワークのプロパティ値は SetValue で直接値を代入した時だけメモリが確保される仕様。クラスのインスタンスは単なるハンドル。
インスタンスが作られた時に全てのプロパティ用にメモリを確保すると、メモリをバカ食いするし、他のインスタンスと同じ値ばっかりで無駄が多い、
あと、Style や VisualTree とかで同じ値に設定する状況でインスタンス一個一個の値を設定することになって重い。
それを避けるために、他と値が共有できる状況なら、値を共有して軽くしてる(プロキシ・パターンとかフライウェイト・パターン)。
02001962013/02/09(土) 00:33:41.69
訂正 VisualTree → VisualTree とかで使われるプロパティ値の継承
02011852013/02/09(土) 01:23:12.30
>>199
度々ありがとうございます。
WinForms感覚で考えると全然駄目なんですね、
無事、依存関係プロパティ自体を作ることが出来ました。
http://ideone.com/nRVJ6b

ただ、バインドがうまく入ってないのか、Textの値が変わってくれません。
0202デフォルトの名無しさん2013/02/09(土) 05:13:08.92
OnDateChangedのSetValueは、引数dが実体なんだから
TextPropertyにtextbox2を付けないとダメじゃね。subがsharedだし見えないでしょ。
0203デフォルトの名無しさん2013/02/09(土) 05:16:56.16
>>201

どううまく行かないのか書いてないからわからんけど
バインドしてるプロパティの値を変えても、表示されるTextに変化がないってことなら

@XAMLでのバインドの仕方が間違ってる。OneWayないしTwoWayに。(OneTimeやOneWayToSourceではダメ)
AプロパティにINotifyPropertyChangedを実装してない

このどっちかじゃないかな

ちなみに、やりたいとこがDate型の値をyyyy/MMで表示したいだけなら
わざわざTextBoxを継承した独自のコントロール作ったり大がかりなことするより
Converterかました方がずっとお手軽だと思うw
0204デフォルトの名無しさん2013/02/09(土) 05:17:20.37
あ、アホなこと言ってた。それはいいのか
0205デフォルトの名無しさん2013/02/09(土) 05:38:13.39
あと入力されたときTextからDateValueに値突っ込まないとダメじゃね
0206デフォルトの名無しさん2013/02/09(土) 12:26:35.07
>>201
新しいプロジェクト作って、そのコードと以下を追加して、実行してみたけど、期待通りに表示されたよ。

<StackPanel>
&nbsp; &nbsp;<local:TextBox2nd x:Name="_textBox2"/>
&nbsp; &nbsp;<Button Content="Set" Click="Button_Click_1"/>
</StackPanel>

Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
&nbsp; &nbsp;_textBox2.DateValue = DateTime.Now
End Sub

最小限の構成で試してみたら?
02072062013/02/09(土) 12:31:12.87
あ、スペースを &nbsp; に変換して書き込んでしまった。削除して読み替えて。
02081852013/02/09(土) 13:23:42.08
>>203
TwoWayにしています。
バインドするプロパティにINotifyPropertyChangedを実装していなかったので、実装しましたが、
Textに日付の文字列が入ってくれません。
他にもお手軽な方法があるのがあったんですね、まぁいつかはわからないといけなくなると思うので練習がてらカスタムコントロールでやっていこうと思います。

>>206
実行してみましたが、DateValueに値が入っていることが確認できました。
自分もそこまでは行くんですが、それの後にTextに日付が入らないことが最後の問題なっています。

まさかここまで難しいとは思いもよらなかったです。
http://ideone.com/YLTgxE
0209デフォルトの名無しさん2013/02/09(土) 14:05:51.74
ListBoxにRichTextBoxを張り付けて項目を表示しているのですが、
RichTextBoxをクリックしてもListBoxItemが選択されません。
RichTextBoxをクリックしてListBoxItemが選択されるようにするにはどのようにすればいいでしょうか。
0210デフォルトの名無しさん2013/02/09(土) 17:57:00.97
>>208
そのコード、TextBox を継承するなら TextProperty を再定義する必要はないよ。
TextBox が公開している OnTextChanged を override すれば実現できる。

何らかの理由で TextBox.TextProperty の PropertyChangedCallback を置き換えたい場合は、
静的コンストラクタで TextProperty.OverrideMetadata メソッドを使えば可能。再定義は不要。
0211デフォルトの名無しさん2013/02/09(土) 19:21:13.54
Bitmapに相対パスで画像を入れたいのですができません

Bitmap bmp = new Bitmap("test.bmp");
こう書いたのですがエラーが出て強制終了します
ファイル名を絶対パスで書くとエラー出ませんでした
ファイルはカレントに置いてあるはずなんですが、書き方間違ってますか?
0212デフォルトの名無しさん2013/02/09(土) 19:39:44.62
exeとbitmapを同じフォルダに置いてexeを起動してみてはどうか
02131852013/02/09(土) 20:56:01.55
>>210
再定義をやめても、今までどおり動作しました。

Dateを入れたときにTextには反映されていますが、Textを変更した時にDateに反映されないのは
DateValueにPropertyChangedが実装されていないからでしょうか?
0214デフォルトの名無しさん2013/02/09(土) 21:23:44.02
namespace Hoge
{
   public class MyConverter : IValueConverter
   {
   }
}

   <StackPanel HorizontalAlignment="Center"
      VerticalAlignment="Center"
      xmlns:local="clr-namespace:Hoge">
         <CheckBox IsChecked="{Binding Flag, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter={MyConverter}}" />
   </StackPanel>



コンパイルが通りません
エラー1XmlNamespace、Assembly または ClrNamespace が Mapping 命令にありません。 行 19 位置 41.
エラー2型 'MyConverter' が見つかりませんでした。アセンブリ参照が失われていないか、また、すべてのアセンブリがビルドされているかを確認してください。


何が悪いのでしょうか
0215デフォルトの名無しさん2013/02/09(土) 21:30:23.42
理解不足なんじゃないの?
0216デフォルトの名無しさん2013/02/09(土) 21:31:33.93
local:MyConverter
0217デフォルトの名無しさん2013/02/09(土) 21:32:53.56
>>212
exeを起動してみたところ古いデータになっていて、デバッグなしで実行していたせいでした。
ありがとうございます
0218デフォルトの名無しさん2013/02/09(土) 21:38:57.58
>>215
はい

>>216
ありがとうございました。
0219デフォルトの名無しさん2013/02/09(土) 21:46:55.62
>>209
Stack Overflow: Selecting a Textbox Item in a Listbox does not change the selected item of the listbox
http://stackoverflow.com/questions/653524/

>>213
> DateValueにPropertyChangedが実装されていないからでしょうか?
関係ないんじゃない? OnTextChanged にブレークポイントを置いて実行してみて、呼ばれているかどうか確認してみれば?

>>214
"Converter={MyConverter}" が駄目。そこにクラス名は書けない。下の解説を読みなおして。
MSDN : IValueConverter インターフェイス
http://msdn.microsoft.com/ja-jp/library/system.windows.data.ivalueconverter.aspx
02201852013/02/09(土) 23:45:57.49
>>219
無事完成しました。
ありがとうございます。
ブレイク貼ったら全然通ってませんでした。
イベントにして解決しました。Shadowsでなんで走らなかったのかは謎ですが・・・
http://ideone.com/mYEQKK

身近にWPFに詳しい人がいなかったので、とても助かりました。
独学じゃ挫折しそうです。
ありがとうございました。
0221デフォルトの名無しさん2013/02/09(土) 23:55:55.36
Shadows と Override じゃ全然意味が違うぞ。
>>210 は Private Shared Shadows Sub OnTextChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs) じゃなくて、
Protected Overrides Sub OnTextChanged(e As TextChangedEventArgs) を使えって意味だと思う。
02221852013/02/10(日) 01:00:04.08
>>221
>>220のLostfocusイベントのところをすでにあるOnLostFocusをOverrideしたら、同様に動作しました。
こっちのほうが見栄えがいいですね。
ありがとうございます。
これは依存関係プロパティとは関係ないのでSetValueとかではなく、通常のプロパティを弄る感じなんですね
やっといろいろ分かって来ました。
0223デフォルトの名無しさん2013/02/10(日) 23:34:37.87
MVVMってエントリーポイントはどこになるんですか?
イベント駆動だと、StartupUriに書いたクラスのコンストラクタもしくはLoadedイベントに書くはずですが・・・
0224デフォルトの名無しさん2013/02/10(日) 23:41:03.48
VMのコンストラクタでやるか、それでできないことならイベントハンドラからVMのメソッドを呼べ
0225デフォルトの名無しさん2013/02/10(日) 23:49:23.51
それはアプリケーションが常にVMを生成することを担保しないといけなくないですか?

軽く調べてみたら、App.xamlのstartupuriを消して、startupにして
そこからVMとVを作るという方法があるようですが・・・
0226デフォルトの名無しさん2013/02/11(月) 00:14:38.27
そんなもんMVVM関係ないだろう。App.Startupイベントでも使え。
MVVMはビューをスマートに実装する仕組み以上のものじゃない。一つのビューに閉じた話。
0227デフォルトの名無しさん2013/02/11(月) 01:37:28.79
むしろMVVM的なものをアプリの何処で生成したらいいかって話じゃね?
Prismとかでググれ
0228デフォルトの名無しさん2013/02/11(月) 03:28:16.72
formsで言うUpdate()やInvalidate()のようにコントロールを強制的に再描画させたいのですが、どうやればできますか
0229デフォルトの名無しさん2013/02/11(月) 10:27:08.19
InvalidateVisual
でもWPFではDrawingを動的に変更するのはやらないのが基本。Visualを動かせば勝手に反映される。
頻繁なOnRenderとかもってのほか。
02302252013/02/11(月) 12:21:55.80
分からなかったのは

アプリケーションを起動したときに、最初に

DateContext = new Model();

とかやるじゃないですか
ここはどこでやるべきなのかなーと

Windows.csには原則何も書いてはいけないらしいですから、Viewではないですし
0231デフォルトの名無しさん2013/02/11(月) 12:26:06.09
>>230
コンストラクタに書くのが普通
コードビハインドを書いてはいけないなんてことはない。それ以外のコードも書くし必要ならイベントハンドラも使う。
0232デフォルトの名無しさん2013/02/11(月) 12:30:45.77
有象無象が発言した「原則」とかなんで信じるの?馬鹿なの
0233デフォルトの名無しさん2013/02/11(月) 12:44:15.89
DIやサービスロケータを使わないのなら、VMが依存するサービス類の依存性解決もVで明示的にやることになるな
0234デフォルトの名無しさん2013/02/11(月) 12:52:55.48
ほーらまたMVVM教が一人の初心者を狂わせたぞ
責任取れカス
0235デフォルトの名無しさん2013/02/11(月) 12:58:06.51
テストのためのパターンなのにパターンそのものが目的みたいになってしまってるよな。
MVVMやるならVMの単体テストを書け。
Prismがなんでああいう構造になってるかなんて自分でテスト書いてみないと理解できない。
0236デフォルトの名無しさん2013/02/11(月) 13:04:44.76
デザイナ用のデータコンテキスト(d:DataContext)もあるし、インスタンスの生成をどこでどう制御するのがベストなのかよくわからん
0237デフォルトの名無しさん2013/02/11(月) 13:20:59.10
原則がなぜ存在するのか、原則を外れていいのは時はどんなときか
これらを知らないと原則を盲目的に守るしかなくなる

コードビハインドをあまり書くなってのは、単にUIに依存したコードはテストしにくいから
0238デフォルトの名無しさん2013/02/11(月) 13:25:27.57
コードビハインドっていい事だよね
0239デフォルトの名無しさん2013/02/11(月) 13:32:09.37
Modern用のKone見た人おる?
0240デフォルトの名無しさん2013/02/11(月) 17:47:59.48
>>229
ありがとうございます
0241デフォルトの名無しさん2013/02/11(月) 18:30:51.16
ViewModelにIDisposableなオブジェクトを持たせることはありでしょうか。
ViewModelもIDisposableにして、Window終了時に確実にDisposeを呼びたいんですが、
Closedイベントで (DataContext as IDisposable).Dispose(); とするのが普通ですか?
0242デフォルトの名無しさん2013/02/11(月) 18:36:44.80
それでOK
0243デフォルトの名無しさん2013/02/11(月) 18:42:50.36
ただas使ってるのにチェックなしでDisposeするのは変
0244デフォルトの名無しさん2013/02/12(火) 06:31:41.50
必ずやるならfinallyでやるとすると、VM型の参照持っておかね
0245デフォルトの名無しさん2013/02/12(火) 07:19:53.04
MVVMってViewModel.csに一つのイベント事にICommandを実装したクラスを書くのがひとつの形なんですか?


http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_06/introwpf_06_02.html

つまりbuttonが10個あるとして、10個全てのイベントの中身が違うとしたら、
ViewModel.csにICommandを実装したらクラスを10個書く・・・

そういうことを上の記事は推奨しているように見えます
0246デフォルトの名無しさん2013/02/12(火) 07:47:09.83
賛否あるだろうけど、標準でやれるのはソレだけだし、そうだと思う。
クラス10個は書かないでいいだろうけど…。
よく使われてるのは、汎用的なICommandを実装したクラスを1つ用意して、
それを使いまわして、個々の実装はデリゲートでメソッドを受け取るって形だと思う。
0247デフォルトの名無しさん2013/02/12(火) 07:50:58.39
DelegateCommand とか RelayCommand でググれば分かると思う
0248デフォルトの名無しさん2013/02/12(火) 08:31:47.05
>>246-247
ありがとうございました。
DelegateCommandについては上記記事にも書いてました
0249デフォルトの名無しさん2013/02/12(火) 09:04:51.15
F#なら匿名型でかけるお(´・ω・`) 
0250デフォルトの名無しさん2013/02/12(火) 14:37:27.13
ラジオボタンのIsCheckedを触りたい場合は、VMにboolのメンバー変数持たせて、

IsChecked={Binding Path=変数 Mode=Twoway}

とするのが一般的ですか?
0251デフォルトの名無しさん2013/02/12(火) 14:56:25.52
メンバー変数でなく通知プロパティとバインドさせるのは俺もよく使うが、
問題は「一般的かどうか」より「必要かどうか」だろ
0252デフォルトの名無しさん2013/02/12(火) 14:57:33.81
変数じゃダメ。プロパティにしてやらないとバインドできない。

IsChecked={Binding プロパティ名, Mode=Twoway}

で行ける。
■ このスレッドは過去ログ倉庫に格納されています