4
XAML中的DataTemplate可以與嵌套類關聯嗎?DataTemplate可以綁定到嵌套類嗎?
我正在處理MVVM應用程序,並且遇到了數據模板問題。我有一個視圖模型,爲項目控件提供了其他視圖模型的集合。這些項目是在外部視圖模型中定義爲嵌套類的層次結構的一部分。到目前爲止,我一直無法在XAML中創建映射來引用內部嵌套類。
這裏是類層次結構(簡化爲簡潔起見):
public class MainViewModel
{
public class A
{
}
public class B : A
{
}
public class C : A
{
}
public ObservableCollection<A> Items
{
get;
set;
}
}
在XAML中,我試圖映射一個DataTemplate,以B型和C,但我不能完全限定嵌套類的名稱。
<ItemsControl ItemsSource="{Binding Path=Items}">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type ns:BracingViewModel.B}">
<Grid>
....
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type ns:BracingViewModel.C}">
<Grid>
....
</Grid>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
問題:對嵌套類的引用顯示爲XAML中的構建錯誤。我得到如下:
Error 5 Cannot find the type 'ns:B'. Note that type names are case sensitive. Line...
Error 5 Cannot find the type 'ns:C'. Note that type names are case sensitive. Line...
如果我移動A,B,C類層次的MainViewModel類(即命名空間級別)之外,這工作正常。
按照一般的習慣,我儘量保持相關被定義爲在其內嵌套類視圖模型類,但是這使我這個問題。
所以,我的問題:是它甚至有可能到一個DataTemplate與嵌套類關聯?如果是這樣,XAML部分的工作如何?
在此先感謝... 喬
工程就像一個魅力,但我馬上遇到的問題VS2010與WPF DESIG在使用時不能顯示錶格。但是,綁定確實工作正常。 –
如何對上帝的地球是任何人的預期要弄清楚這個語法?應該有一項禁止微軟設計和實施API的法律。 –