FindName не работает
Мой FindName
не работает, значение равно нулю.
И я не могу позвонить x:Name="QuantiteTextBox"
в моем коде позади...
Название, кажется, не существует в этом контексте..
XAML:
<GridViewColumn Width="Auto" Header="Nb">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="QuantiteTextBox" Text="{Binding Quantite, ElementName=EditTableUserControl}" HorizontalAlignment="Center" Margin="-10,0,0,0"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
WPF:
var quantiteTextBox = (TextBox)FindName("QuantiteTextBox");
Как я могу решить эту проблему, пожалуйста? Благодарю.
1 ответ
FindName не будет работать, потому что TextBox находится в шаблоне. Это объявление
Когда вы вызываете FindName, он запрашивает определенную область. Если код, который вы разместили, находится прямо в окне WPF, он будет искать элементы управления только в этом окне. Так как этого TextBox нет в окне, вы его не найдете.
На данный момент, я не знаю, хотели ли вы найти один из текстовых блоков в окне или вы действительно хотите найти его в шаблоне элемента управления. Посмотрите на т
См. Почему Window.FindName() не обнаруживает x: Имя кнопки в дочернем UserControl? АКА, как работают NameScopes? для лучшего объяснения, чем я могу дать. Короче говоря: вы, вероятно, хотите сделать это по-другому.