3
有没有办法将一些边界属性赋值给ViewModel,然后让Border的内容匹配与该VieWModel对应的任何类型的数据模板?为单个控件使用类型化的数据模板
这是一个很做作的例子,但假设我有一个用户控件:
<Grid>
<StackPanel>
<TextBox Height="30" Width="300" Margin="10" Text="{Binding IntProperty}"></TextBox>
<TextBox Height="30" Width="300" Margin="10"></TextBox>
<Border x:Name="SingleElement" Height="100" Width="350" BorderBrush="Red" />
</StackPanel>
</Grid>
而且我有这种类型的数据模板:
<DataTemplate DataType="local:SingleItemViewModel1">
<StackPanel>
<TextBlock Margin="10" Text="{Binding A}"></TextBlock>
<TextBlock Margin="10" Text="{Binding B}"></TextBlock>
</StackPanel>
</DataTemplate>
在代码 - 在我的用户控制的后面(再次,设计)是否有SingleElement
的属性,我可以将它分配给SingleItemViewModel1
的新实例,以便上述DataTempla te会显示在里面吗?
我试过了,但是这会导致边框只显示类的名称-Wpf_Sandbox.SingleItemViewModel1;它没有解决类型化的数据模板。有没有办法哄它这样做? – 2011-05-26 21:15:56
@AdamRackis答案在这里找到:http://stackoverflow.com/questions/17514824/how-to-get-contentcontrol-to-resolve-datatemplate。基本上,在定义数据模板时使用{x:Type}而不仅仅是类型名称 – BradleyDotNET 2016-01-26 00:25:43