我有ItemsControl
一个DataTemplate
描述如何显示每个项目的说明。我想在 DataTemplate 中拥有的 UI不适合由 XAML 建模,我将不得不Grid
在代码中填充一个。
如何在每次DataTemplate
实例化 my 时运行此代码,以便我有机会填充无法在 XAML 中表达的位?
为了扩展一点,考虑一个简化的例子。虚拟机如下所示:
class MyItem
{
public string Name { get; set; }
public MyGrid Grid { get; set; } // describes a complex grid-like model
}
DataTemplate
看起来像这样:
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
<Grid/>
</DataTemplate>
这<Grid/>
是我想在基于MyItem.Grid
. 我怎样才能做到这一点?
(如果您要说我不应该填充<Grid/>
in 代码而只使用 XAML,请改为回答此问题)