我是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。
我该怎么做?