2015-11-19 2 views
0

Я написал веб-службу, которая позволяет мне извлекать информацию из моей базы данных SQL и отображать эту информацию в моем универсальном приложении Windows. В настоящее время я показываю эту информацию в списке. Я хотел бы, чтобы отобразить эту информацию в 3 отдельных текстовых блоков, и я уверен в том, как добиться того, что ... Это в настоящее время, что у меня есть, что работает отлично, но ставит его в ListBox:Заполнение текстового блока из запроса LINQ (веб-службы)

Web Service

[OperationContract] 
List<TBL_My_Info> FindInfo(string uid); 

public List<TBL_My_Info> FindInfo(string uid) 
{ 
    DataClasses1DataContext context = new DataClasses1DataContext(); 
    var res = from r in context.TBL_My_Info where r.User_Name == uid select r; 
    return res.ToList(); 
} 

XAML

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <ListBox Height="500" HorizontalAlignment="Left" 
    Margin="8,47,0,0" 
    Name="listBoxInfo" VerticalAlignment="Top" Width="440"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Vertical"> 
        <TextBlock Text="{Binding Title}" FontSize="14" TextWrapping="Wrap"/> 
        <TextBlock Text="{Binding Description}" FontSize="14" TextWrapping="Wrap"/> 
        <TextBlock Text="{Binding Name}" FontSize="14" TextWrapping="Wrap"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 

Универсальный веб-приложений

private void btnView_Click(object sender, RoutedEventArgs e) 
{ 
    string s = txtNameFind.Text; 
    this.Content = new Page1(s); 
}  

public Page1(string s) 
{ 
    this.InitializeComponent(); 
    LoadData(s);   
} 

private async void LoadData(string s) 
{ 
    var client = new ServiceReference1.Service1Client(); 
    var res = await client.FindMyInfoAsync(s); 
    listBoxInfo.ItemsSource = res; 
} 

В основном то, что я спрашиваю, как я могу получить его на 3 части информации для отображения в 3 отдельных текстовых блоков, а не в ListBox ...

Благодаря

+0

Попробуйте listBoxInfo.DataContext = Рез; Но на самом деле вам следует рассмотреть методологию привязки. –

+0

Можете ли вы привести пример методологии привязки, я открыт для любых предложений. Не продается каким-либо определенным образом – Code

ответ

0

Пример используя Переплет:

//this is the backing store property 
public static readonly DependencyProperty ListBoxInfoProperty = 
     DependencyProperty.Register("ListBoxInfo", typeOf(ObservableCollection<Tbl_my_Info>), typeof(thisControlType)); 

//this is the CLR Wrapper 
public ObservableCollection<Tbl_my_Info> ListBoxInfo { 

    get{return (ObservableCollection<Tbl_my_Info>)GetValue(ListBoxInfoProperty);} 
    set{SetValue(ListBoxInfoProperty,value);} 

В окне или UserControl после InitializeComponent() вызова, введите этот ...

DataContext = this; 

Вы только что связали XAML с этим кодом.

Сейчас в XAML ...

<ListBox Height="500" HorizontalAlignment="Left" 
Margin="8,47,0,0" 
ItemsSource = "{Binding ListBoxInfo}" 
Name="listBoxInfo" VerticalAlignment="Top" Width="440"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Vertical"> 
       <TextBlock Text="{Binding Title}" FontSize="14" TextWrapping="Wrap"/> 
       <TextBlock Text="{Binding Description}" FontSize="14" TextWrapping="Wrap"/> 
       <TextBlock Text="{Binding Name}" FontSize="14" TextWrapping="Wrap"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Дайте, что выстрел ....

Смежные вопросы