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

わんくま同盟

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

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


(過去ログ 153 を表示中)
■88780 / )  Re[4]: DataGridのセルをUserControlにする
□投稿者/ Hongliang (706回)-(2018/09/26(Wed) 11:10:54)
> NumericUpDownが置いてあるDataGrid.ItemsSourceのMin,Max,Valueをバインドするには
> どうしたらよいのでしょうか?
> 
>>自身ではなく、最上位子要素Grid辺りのDataContextで扱うようにすれば、
> 最上位子要素とはSettingControl.xamlの子要素でしょうか?

NumericUpDownの内部の話です。
<UserControl x:Class="UI.Controls.NumericUpDown"
             ...>
    <Grid Background="White" x:Name="Root">

public NumericUpDown()
{
    InitializeComponent();

    // 内部のVMは内部の要素に。
    this.Root.DataContext = new ViewModels.NumericUpDownViewModel();
    // これならNumericUpDown自体はDataContextが設定されてないので、
    // 論理ツリーの上位のDataContextを参照しに行くようになる
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
    NumericUpDown ctrl = sender as NumericUpDown;
    var vm = this.Root.DataContext as ViewModels.NumericUpDownViewModel;
    // 略
}

返信 編集キー/


管理者用

- Child Tree -