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

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

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

Re[3]: WPF ユーザーコントロール内コントロールへの直アクセス


(過去ログ 72 を表示中)

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

■42171 / inTopicNo.1)  WPF ユーザーコントロール内コントロールへの直アクセス
  
□投稿者/ あむみ (4回)-(2009/10/08(Thu) 23:31:56)

分類:[.NET 全般] 

お世話になっています。

WPFで,ユーザーコントロールをたとえば下記のようにしたとき,
--
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Slider Grid.Column="0" />
<Label Grid.Column="1" Content="わー"/>
</Grid>
</UserControl>
--

このユーザーコントロールを使うとき,

--
<local:CoolVolumeSlider/>
--

このときのプロパティでValueを設定して,

UserControl1内のSliderにその値を設定したい(バインディングもしたい)のですが,

どのようにすれば良いでしょうか?

以上,よろしくお願いします。

引用返信 編集キー/
■42176 / inTopicNo.2)  Re[1]: WPF ユーザーコントロール内コントロールへの直アクセス
□投稿者/ 倉田 有大 (734回)-(2009/10/09(Fri) 08:54:35)
ユーザーコントロールに依存プロパティーを実装してあげます。

 public static readonly DependencyProperty ValueProperty =
    DependencyProperty.Register("Value", typeof(int), typeof(numericUpDown), new FrameworkPropertyMetadata(0, (FrameworkPropertyMetadataOptions.BindsTwoWayByDefault), new PropertyChangedCallback(OnValuablePropertyChanged), new CoerceValueCallback(CoerceValue)));

 public int Value
        {
            set
            {
                SetValue(ValueProperty, value);         
            }
            get
            {                
                return (int)GetValue(ValueProperty); ;
            }
        }

   private static void OnValuablePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e )
        {
            numericUpDown n = d as numericUpDown;
            
            n.SetText(e.NewValue.ToString());            
        }

私のコードから、適当に抜きだし。

引用返信 編集キー/
■42242 / inTopicNo.3)  Re[2]: WPF ユーザーコントロール内コントロールへの直アクセス
□投稿者/ あむみ (5回)-(2009/10/10(Sat) 09:29:38)
倉田さん

ありがとうございます!
参考にさせていただきます。
解決済み
引用返信 編集キー/
■42252 / inTopicNo.4)  Re[3]: WPF ユーザーコントロール内コントロールへの直アクセス
□投稿者/ 倉田 有大 (736回)-(2009/10/10(Sat) 17:17:46)
2009/10/10(Sat) 18:36:19 編集(投稿者)

依存プロパティーは、MVVMで組もうとしたりするとき必須ですのでがんばってくださいね。
一度実装のやり方覚えたら、ずっと使えますし。依存プロパティーぐぐぐると親切に説明してくれているサイトが見つかると思います。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -