我对C#中的WPF / XAML还是很陌生,我看到了一些简单的教程和内容,但是今天,我很困惑,从来没有在那里制作过UI.
(注意:我只是以WYSIWG的方式构建了它,所以XAML标记是完全混乱的,用于截图.我什至不能直接在网格中添加表,哦)
我每个学年的每个月都有这样的数据,因此,取决于选择哪个班级,我希望它像这样输出(方案)
(注意:我需要第一个屏幕截图中的表单,而不是每个CustomWindowInstance)
那么,什么是最好的方法呢?
解决方法:
编辑1:我将从第一个屏幕快照中命名XAML,它表示要多次显示的控件XAML 1,而另一个要在其中执行的控件XAML 2.
–
几乎是原始的:
创建一个单独的用户控件,并将Window标记的内容从XAML 1移动到其中.然后,您可以通过放置< yourUserControlNamespace:YourUserControlClass />来显示任意多次.在XAML 2中.
为了能够在XAML中与此控件进行通信,例如< yourUserControlNamespace:YourUserControlClass Parameter =“ SomethingHere” />您应该在YourUserControlClass.xaml.cs中使用名称ParameterProperty(XAML“属性”中所需的属性名称)实现dependency property.
–
编辑2:还可以为XAML 2或整个应用程序的资源中的XAML 1的ViewModel(而非View)创建一个参数为DataType = {x:Type yourVMNamespace:YourVMClass}的DataTemplate.在这种情况下,您要绑定的ViewModel类将由DataTemplate的内容本身表示.稍后,您可以编写< yourVMNamespace:YourVMClass />如第一种解决方案.
这种方法允许显示任何项目本身的丰富表示形式,例如,在从ItemsControl派生的控件中(例如ListBox),您要做的就是将ListBox的ItemsSource属性绑定到YourVMClass实例的集合(或在XAML中通过手).
更准确地说,在这种情况下,我不会将YourVMClass称为ViewModel.