我正在努力控制模板。我目前正在構建一個具有幾個窗格的UI,這些窗格基本上是由更基本的控件構建而成的。如何訪問並向WPF模板中的控件提供默認值?
這裏是如何我們建設窗格中的一個看起來像現在:
<Grid>
<StackPanel>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Template="{StaticResource StringCtrl}" Content="Cash Event Value:"/>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Template="{StaticResource RateCtrl}"></ContentControl>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Grid.Row="0" Template="{StaticResource FromCtrl}"></ContentControl>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Grid.Row="0" Template="{StaticResource StartEndDateCtrl}"></ContentControl>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Grid.Row="0" Template="{StaticResource ComboStringCtrl}">Applicable Size:</ContentControl>
</ContentControl>
</StackPanel>
</Grid>
下面是該StringCtrl作爲示例模板:
<ControlTemplate x:Key="StringCtrl" TargetType="ContentControl">
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Name="ctrlText" Margin="0,0,5,0" Text="{TemplateBinding Content}"></TextBlock>
<TextBox Name="ctrlDefaultValue" Grid.Column="1" />
</Grid>
</ControlTemplate>
你可以從模板看到它真的只是一個標籤和一個文本框。現在讓我們假設我想爲文本框提供一個默認值,並對用戶輸入進行驗證,但我想從父級構造窗格中提供該上下文,並將其綁定到模板內的各個元素。我會怎麼做呢?
覺得我喜歡你走錯路。爲什麼你使用這個模板?如果你想創建一個模塊化設計,只需使用UserControls。 – 2011-05-19 01:47:25