DataTemplate中的Windows 8 TextBlock

时间:2014-01-10 10:45:52

标签: c# xaml

<FlipView Name="flipView"
            AutomationProperties.AutomationId="ItemsFlipView"
            AutomationProperties.Name="Item Details"
            TabIndex="1"
            Grid.Row="1"
            ItemsSource="{Binding}" Style="{StaticResource FlipViewStyle1}">
            <TextBlock Name="answerT" Text="{Binding question}"/>
            <FlipView.ItemContainerStyle>
                <Style TargetType="FlipViewItem">
                    <Setter Property="Margin" Value="0,137,0,0"/>
                </Style>
            </FlipView.ItemContainerStyle>
            <FlipView.ItemTemplate>
                <DataTemplate>
                    <TextBlock x:Name="flipTxt" Text="{Binding question}"/>
                </DataTemplate>
            </FlipView.ItemTemplate>
</FlipView>

我在XAML中定义了上面的FlipView。我想在C#中的字符串中获取“flipTxt”TextBlock中的信息。

尝试使用VisualTreeHelper,但我似乎无法理解它是如何工作的。

同样,尝试创建另一个文本块(answerT),它将读取相同的信息并从该文本中获取文本。也没用。

由于

LE: 这就是我如何进行绑定,我从MobileService获取数据。

private IMobileServiceTable<myObj> obj_tb = App.MobileService.GetTable<myObj>();
private ObservableCollection<myObj> obj_it;


var res= await obj_tb.ToListAsync();
obj_it = new ObservableCollection<myObj(res);
flipView.ItemsSource = obj_it;

1 个答案:

答案 0 :(得分:0)

正确地将FlipView绑定到其集合,您可以在不同事件的代码中访问SelectedItem,例如SelectionChanged事件

private void flipView_SelectionChanged(object sender, Windows.UI.Xaml.Controls.SelectionChangedEventArgs e)
    {
        if (flipView != null)
        {
            var item = flipView.SelectedItem as MyObj;
            string question = item.Question;
            string answer = item.Answer;
        }
    }

可能的MyObj

public class MyObj
{
    public string Question { get; set; }
    public string Answer { get; set; }
}

或者当您使用MobileServices时,如果使用Json.NET

,您可能会这样做
public class MyObj
{
    [JsonProperty(PropertyName = "Question")
    public string Question { get; set; }

    [JsonProperty(PropertyName = "Answer")]
    public string Answer { get; set; }
}