C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: バインド時のOneWayの挙動について


(過去ログ 108 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■64565 / inTopicNo.1)  バインド時のOneWayの挙動について
  
□投稿者/ Corosuke (1回)-(2012/12/07(Fri) 12:17:04)

分類:[VB.NET/VB2005 以降] 

標記の件について悩んでおります。
お力を貸していただければ幸いです。

[環境]
  VisualStudio 2010 (VB・WPF)

[内容]
  A、Bという2つのユーザーコントロールを作成し実行します。

--ユーザーコントロールのコード---------------------------------------------------------------------
<Category("Test"), Description("Test用です")>
Public Property Text As Integer
Get
Return DirectCast(GetValue(TextProperty), Integer)
End Get
Set(value As Integer)
SetValue(TextProperty, value)
End Set
End Property

Public Shared ReadOnly TextProperty = DependencyProperty.Register("Text", GetType(Integer), GetType(UserCon))

  ※ユーザーコントロールのXAMLにはなにもしていません。
--------------------------------------------------------------------------- 

--WindowのXAML---------------------------------------------------------------------
<UserCon Name="A" />
<UserCon Name="B" Text="{Binding ElementName=A,Path=Text,Mode=OneWay}" />

  ※Windowのコードにはなにもしていません。
--------------------------------------------------------------------------- 

  操作1:AのTextプロパティを変更→BのTextプロパティも変更される。
  操作2:BのTextプロパティを変更→AのTextプロパティは変わらない。
  操作3:AのTextプロパティを変更→BのTextプロパティは変わらない。(←なぜ?)

[自力調査]
  ・ユーザーコントロールを既存のTextBoxやComboBoxに変更
    操作3でも操作1と同じ動作でした。
  ・バインドのModeをOneWayToSourceに変更
    操作3でも操作1と同じ動作でした。(A、Bは逆転しますが)
  ・バインドのModeをTwoWayに変更
    操作3でも操作1と同じ動作でした。


教えていただければ助かります。







引用返信 編集キー/
■64567 / inTopicNo.2)  Re[1]: バインド時のOneWayの挙動について
□投稿者/ Corosuke (2回)-(2012/12/07(Fri) 15:12:00)
-調査中-

コンボボックスのSelectedIndexを掘り下げてみたのですが、

 コンボボックスのSelectedIndexをそのまま使用するならOneWayでも「操作3」は思っている通りになる。
 その元クラスのSystem.Windows.Controls.Primitives.SelectorのSelectedIndexを単純に継承したカスタムコントロールではダメ。

 バインド時の更新・通知をコンボボックス内でなにかしている?のでしょうか?
引用返信 編集キー/
■64568 / inTopicNo.3)  Re[2]: バインド時のOneWayの挙動について
□投稿者/ Corosuke (3回)-(2012/12/07(Fri) 15:39:06)
-調査中-

  いや、既存のコンボボックスでもコード上でSelectIndex=3とかすると、効かなくなりますね(- -;)
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -