2013-10-08 3 views
1

Так что я использую WPF неправильным способом, и у меня есть куча динамически созданных объектов при загрузке ... Я пытаюсь выяснить, как с помощью databind через C# ... что будет эквивалентным кодом C# для этого:Как привязать данные к C#, а не WPF?

<StackPanel DataContext="{Binding SelectedGame}"> 
    <Label Content="{Binding HomeScoreText}" /> 
    <Label Content="{Binding AwayScoreText}" /> 
</StackPanel> 

У меня возникли проблемы с поиском примеров этого онлайн .. спасибо

+1

Является ли сам шаблон динамической, или только количество элементов и данных, связанных с ними? Если последнее, просто создайте новый пользовательский элемент управления, чтобы шаблон был статичным, а затем динамически создавал экземпляры этого пользовательского элемента управления и привязывал к нему данные. Это по крайней мере ... хуже. – Servy

+0

Единственное, что создано в WPF - это TabControl. то сетка внутри каждого tabitem и stackpanel/labels создаются динамически при загрузке, поскольку она считывает данные из SQL – user1189352

+0

, все еще запутанные, к сожалению bleh – user1189352

ответ

2

MSDN есть пример страницы, демонстрирующий, как Create a Binding In Code.

В вашем случае, вы могли бы сделать выше, с помощью:

StackPanel panel = new StackPanel(); 
Label label1 = new Label(); 
Label label2 = new Label(); 

panel.Children.Add(label1); 
panel.Children.Add(label2); 

var yourVM = GetYourCurrentViewModelWithSelectedGameProperty(); 

// Set data context 
Binding binding = new Binding("SelectedGame"); 
binding.Source = yourVM; 
panel.SetBinding(FrameworkElement.DataContextProperty, binding); 

binding = new Binding("HomeScoreText"); 
binding.Source = panel.DataContext; 
label1.SetBinding(ContentControl.ContentProperty, binding); 

binding = new Binding("AwayScoreText"); 
binding.Source = panel.DataContext; 
label2.SetBinding(ContentControl.ContentProperty, binding); 
+0

спасибо, глядя прямо сейчас – user1189352

+0

@ user1189352 Добавлен код для вас тоже –

+1

Любопытный - почему downvoting? Это точно отвечает на вопрос ... –

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