【发布时间】:2016-02-14 23:06:21
【问题描述】:
在我的应用程序中,我必须在一个屏幕上显示多个具有相同结构的网格控件(我正在使用 DevExpress),因此我决定为这些网格创建 UserControl。
<UserControl x:Class="MyApp.GridUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid">
<Border BorderBrush="Black" BorderThickness="1">
<Grid>
<dxg:GridControl SelectionMode="Row"
AutoGenerateColumns="None">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="{x:Static res:Resources.Time}" Binding="{Binding LessonTime}"/>
<dxg:GridColumn Header="{x:Static res:Resources.Lesson}" Binding="{Binding LessonName}"/>
<dxg:GridColumn Header="{x:Static res:Resources.Classroom}" Binding="{Binding Classroom}"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AllowEditing="False" AutoWidth="True" ShowGroupPanel="False">
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</Border>
我希望能够在我的 Window 的 xaml 中为此 GridControl 设置 ItemSource。我知道我必须使用 DataContext 属性来执行此操作,但我不知道如何正确使用它。那么,解决这个问题的最佳方法是什么?
【问题讨论】:
-
您的意思是您的
UserControl将用于一个Window 并且您不想在您发布的这个XAML 中设置ItemsSource,而是在Window 的XAML 中设置ItemsSource?跨度> -
是的,这就是我想要实现的目标。我的问题是我必须在我的窗口中使用几个用户控件,所有这些都具有不同的集合作为 ItemSource。
-
当然,我可以在我的窗口中创建所有的 GridControl,而不使用 UserControl,但由于大量可重复的代码,这不是最好的解决方案。