如何在MainWindow中访问用户控制数据

时间:2015-02-27 04:58:29

标签: c# wpf mvvm user-controls

我是WPF新手。我有usercontrol,它有expandder和datagrid

在我的 UserControlViewModel

    public ObservableCollection<MyResult> _results;
    public UserControlViewModel
    {
         _results = new ObservableCollection<MyResult>();
        _results.Add(new EntitySearchResults()
        {
            HeaderName= "Header1", //Expander header
            ColName= new ObservableCollection<string>() { "Col1"}
            CellValues = new ObservableCollection<string>() { "Val1" }       
        } 
    }

在我的 usercontrol.xaml

     <DataGrid
                 x:Name="dataGrid"....
                 ItemsSource="{Binding Path=CellValues }"
                 SelectedValue="{Binding Path=SelectedValue,
                                RelativeSource={RelativeSource                                                                                   
                                FindAncestor,AncestorType=local:MyUserControl,
                                AncestorLevel=1}}" // This is Dependency Property which gets me the Datagrid Row

      </DataGrid>

和我的主窗口我有

       <DataTemplate>
                <Grid>
                    <local:MyUserControl x:Name="mySearchControl" 
                    SelectedValue="{Binding 
                  DataContext.CurrentItem,ElementName=MyWindow,Mode=TwoWay}"/>
                </Grid>
     </DataTemplate>

并在我的主窗口视图模型

   public object CurrentItem
    {
        get { return currentItem; }
        set
        {
            currentItem = value;
            SetProperty(ref currentItem, value);
        }
    }

但这只是给了我Row的值。我还需要Mainwindow中的HeaderName和ColumnName。

我该怎么做?

0 个答案:

没有答案