Trong WPF để binding ItemsSource bên trong một UserControl các bạn làm như sau:
Đầu tiên các bạn cần phải thêm một property vào UserControl của mình. ví dụ ở đây chúng ta thêm ItemsSource vào trong file code .cs
public partial class GridUserControl : UserControl
{
public object ItemsSource
{
get { return (object)GetValue(ItemsSourceProperty); }
set { SetValue(ItemsSourceProperty, value); }
}
public static readonly DependencyProperty ItemsSourceProperty =
DependencyProperty.Register("ItemsSource", typeof(object), typeof(GridUserControl), new PropertyMetadata(null));
public GridUserControl ()
{
InitializeComponent();
}
}
và trong file XAML các bạn định nghĩa như sau
<UserControl x:Class="MyApp.GridUserControl"
xmlns:local="clr-namespace:MyApp">
<dxg:GridControl ItemsSource="{Binding ItemsSource, RelativeSource={RelativeSource AncestorType=local:GridUserControl}}" />
</UserControl>
Và sau đó ở View nào sử dụng UserControl bạn chỉ việc binding đối tượng vào
<Window x:Class="MyApp.Window1"
xmlns:local="clr-namespace:MyApp">
<Grid>
<local:GridUserControl ItemsSource="{Binding Items1}"></local:GridUserControl>
<local:GridUserControl ItemsSource="{Binding Items2}"></local:GridUserControl>
</Grid>
</Window>
Nguồn https://stackoverflow.com/questions/35399129/binding-to-datagrids-itemsource-in-usercontrol