1
我有一個DataGrid是這樣的視圖模型中:我想模板對象屬性,按類型,另一個的DataTemplate
public class Cell
{
public CellValue CellValue { get; }
}
而且CellValue屬性可以有幾種類型:
public class CellValue
{
public double Value { get; }
}
public class TwoValueCell : CellValue
{
public double Value2 { get; }
}
DataGrid將ItemsSource綁定到我的行和單元格的列表。
DataGrid按預期綁定數據:我在每個DataGridCell中獲取一個Cell。所以我有這樣的資源樣式(本地資源現在):
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<ContentPresenter x:Name="ContentHost"
Margin="{TemplateBinding Padding}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate DataType="{x:Type viewModel:Cell}">
<Grid>
<TextBlock Text="{Binding CellValue}"/>
</Grid>
</DataTemplate>
</DataGrid.Resources>
我喜歡有綁定到視圖模型類型的模板...
的問題是:不是綁定在TextBlock上,我想膨脹另一個DataTemplate,我可以通過特定的CellValue類型再次定義。
換句話說,在psudocode它可能是這樣的:
<DataTemplate DataType="{x:Type viewModel:Cell}">
<Grid>
<DataTemplate DataType="{x:Type viewModel:CellValue}">
<TextBlock Text="{Binding Value}"/>
</DataTemplate>
</Grid>
</DataTemplate>
但我需要的地方定義特定CellValue數據模板...
的底線是有一個類型對於DataGridCell ---以及具有該類型的數據模板---但是在單元屬性上有若干特定類型,並且我想根據PROPERTY的實際類型定義自定義數據模板。
任何幫助?
是的!我剛剛嘗試過,它正在工作!它使用嵌套數據模板上的自定義類型以及... –