У меня есть DataTemplate в Page.Resources, представляющий структуру таблиц и их связанный номер в ресторане:
<DataTemplate x:Key="Table">
<RelativePanel x:Name="container" Height="40" Width="40">
<TextBlock x:Name="number" RelativePanel.AlignHorizontalCenterWithPanel="True" RelativePanel.AlignVerticalCenterWithPanel="True"/>
</RelativePanel>
</DataTemplate>
В XAML я использую ContentControl, потому что мне нужно повторять ту же структуру, избегая копирования и вставки :
<ContentControl ContentTemplate="{StaticResource Table}" Canvas.Top="200" Canvas.Left="100"/>
<ContentControl ContentTemplate="{StaticResource Table}" Canvas.Top="150" Canvas.Left="300"/>
Затем у меня есть кнопка для динамического добавления нового ContentControl (Table) в код программной части
private void NewTable(object sender, RoutedEventArgs e)
{
ContentControl tavolo = new ContentControl();
tavolo.ContentTemplate = (DataTemplate)this.Resources["Table"];
//here i Want to take the textblock called "number" and change his text.
Canvas.SetTop(tavolo, 150);
Canvas.SetLeft(tavolo, 150);
sala.Children.Add(tavolo);
}
Но если я хочу изменить текст текстового блока, называемого «число» что мне делать в этой функции (только для этой новой таблицы, а не для всех остальных ContentControl)? Как решить эту проблему с помощью привязки данных?
Более того, как лучше всего решить проблему «копипаста»? Стоит ли использовать другие структуры, такие как Usercontrols? Надеюсь, что кто-то ответит на все эти вопросы. Я очень запутался и застрял