在我的项目中我写了一些UserControl,我试图尽可能地重用代码。 对于我项目中的每个模型,我创建一个UserControl,显示CRUD(一个简单的表单),另一个显示List(listBox)
是否可以概括(对于具有不同属性的不同类型的模型)? 使用Generalizatione和Reflection可以创建类似于通用UserControl_Crud和通用UserControl_List的东西吗?
所以在我的page.xaml中我可以使用像
这样的东西<LUC:UserContro_Crud l x:Name="EmployeeUserControl_List" />
<LUC:UserContro_Crud l x:Name="CarsUserControl_List" />
<LUC:UserContro_Crud l x:Name="FruitUserControl_List" />
并在
背后的代码中EmployeeUserControl_List.MyProperty.ItemsSource = EmployeetList;
CarsUserControl_List.MyProperty.ItemsSource = CarstList;
//MyProperty give me back just the listbox from my UserControl
或
FruitUserControl_List.MyProperty.ItemsSource = EmployeetList;
显示3个具有不同属性的列表
@HighCore @Nate Diamond
这样,对于我的任何一种模型,我都必须制作一个特定的模板。例如CrudPersonTemplate`
<!-- my crud-->
<DataTemplate x:Key="MyCrud">
<StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,20,0,20">
<TextBlock Text="Code"/>
<TextBox x:Name="edtCode" InputScope="Number" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,20,0,20">
<TextBlock Text="Name" />
<TextBox x:Name="edtName" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,20,0,20">
<TextBlock Text="Sex" />
<TextBox x:Name="edtSex" />
</StackPanel>
</StackPanel>
</DataTemplate>
比(afeter在app.xaml中注册它作为资源)我可以在Page.xaml中使用它只需输入类似
的内容<ContentControl x:Name="MyTemplate" Content="{Binding}" ContentTemplate="{StaticResource MyCrud}" />
...但很难管理像&#34; edtName&#34;是否来自page.xaml.cs?我必须编写比使用UserControl更多的代码来执行此操作... 如何管理我的表单中的这个字段? UserControl的区别在哪里?我必须手动绑定ContentTemplate ... 我正在寻找page.xaml中的通用解决方案,在&#34;视图&#34;我只想调用通用模板/ userControl,并自动调用#34;根据page.xaml.cs中关联的对象类型选择相对布局(我希望能更好地解释它,为我的无知道歉)