移植iOS应用程序,我可能正在滥用集线器控件;但我有一个非常简单的应用程序,我喜欢一个表单在一个中心部分。但是它似乎必须包装在DataTemplate中,一旦它的形式,TextBox控件就不会显示在C#文件后面的代码中?
<HubSection x:Uid="HubSection1" Header="SETTINGS"
DataContext="{Binding Groups[2]}" HeaderTemplate="{ThemeResource HubSectionHeaderTemplate}">
<DataTemplate>
<StackPanel VerticalAlignment="Top" Margin="0,0,20,0">
<TextBlock Text="api base uri" FontSize="21" TextWrapping="NoWrap"/>
<TextBox Name="apiBaseUriTextBox" Margin="0,0,0,10" TextWrapping="Wrap" PlaceholderText="api base uri" VerticalAlignment="Stretch"/>
<TextBlock Text="api key" FontSize="21" TextWrapping="NoWrap" Margin="0,0,0,10"/>
<TextBox Name="apiKeyTextBox" Margin="0,0,0,10" TextWrapping="Wrap" PlaceholderText="api key" VerticalAlignment="Stretch"/>
<TextBlock Text="api secret" FontSize="21" TextWrapping="NoWrap"/>
<TextBox Name="apiSecretTextBox" Margin="0,0,0,10" TextWrapping="Wrap" PlaceholderText="api secret" VerticalAlignment="Stretch"/>
<Button Click="SettingsSaveClickHandler"
Content="Save" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,20,0,0"/>
</StackPanel>
</DataTemplate>
</HubSection>
答案 0 :(得分:1)
如果要将表单直接放在HubSection的DataTemplate中,那么访问值的最佳方法是通过data binding DataBox中的TextBoxes属性。另一种选择是通过从按钮的SettingsSaveClickHandler
调用VisualTreeHelper来抓取可视树。另一种选择是将表单创建为UserControl,然后在HubSection的DataTemplate中托管已完成的表单。同样,您可以将其绑定到DataContext以连接到基础数据。