我正在使用如下的HubSection:
<HubSection Header="Section1">
<DataTemplate>
<TextBox />
</DataTemplate>
</HubSection>
<HubSection Header="Section1">
<DataTemplate>
<TextBox />
</DataTemplate>
</HubSection>
<HubSection Header="Section1">
<DataTemplate>
<TextBox />
</DataTemplate>
</HubSection>
现在我有了一个JSON,我想在其中绑定所有HubSection
以下是JSON数据的类:
class RootObject
{
public string Text1 { get; set; }
public string Text2 { get; set; }
public string Text3 { get; set; }
}
现在根据this问题和this文章,我可以很好地使用Loaded
的{{1}}事件,如下所示并设置值。
TextBox
但问题是,如果我在<TextBox Loaded="TextBox_Loaded" />
private void TextBox_Loaded(object sender, RoutedEventArgs e)
{
var txtBox = (TextBox)sender;
txtBox.Text = "Some Text";
}
的每个内部都有更多的控件来绑定/访问,那就不好了。
有人可以告诉我是否有另一种简单的方法来绑定控件。
答案 0 :(得分:0)
试试这个:
<强> C#:强>
在类后面的代码中(例如Page
),您需要定义包含RootObject
的属性。请注意,如果您想对此属性值的更改做出反应,则可能需要实现INotifyPropertyChanged。
public Page1 : Page {
public RootObject RootObject { get; set; }
}
<强> XAML:强>
在您的XAML中,您应该只使用绑定到RootObject
的属性,如下所示:
<HubSection Header="Section1">
<DataTemplate>
<TextBox Text="{Binding RootObject.Text1}" />
</DataTemplate>
</HubSection>
<HubSection Header="Section2">
<DataTemplate>
<TextBox Text="{Binding RootObject.Text2}"/>
</DataTemplate>
</HubSection>
答案 1 :(得分:0)
希望这有助于
<强> C#强>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
RootObject ro = new RootObject() {Text1 = "Header1JsonData",Text2= "Header2JsonData",Text3= "Header3JsonData"};
this.DataContext = ro;
}
}
public class RootObject
{
public string Text1 { get; set; }
public string Text2 { get; set; }
public string Text3 { get; set; }
}
}
<强> XAML 强>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Hub >
<HubSection Header="Section1">
<DataTemplate>
<TextBox Text="{Binding Text1}"/>
</DataTemplate>
</HubSection>
<HubSection Header="Section1">
<DataTemplate>
<TextBox Text="{Binding Text2}"/>
</DataTemplate>
</HubSection>
<HubSection Header="Section1">
<DataTemplate>
<TextBox Text="{Binding Text3}"/>
</DataTemplate>
</HubSection>
</Hub>
</Grid>
<强>输出强>