I would like to add a button in TokenizingTextBox thus when user clicks on it a DialogBox appears, or if it's not possible I would like to change behaviour of the standard Add button '+' so once user click on it DialogBox appears.
Does anybody know how to do it ?
Here is my XAML code
<!--Add tokenized text box-->
<controls:TokenizingTextBox
x:Name="TokenBox"
ItemsSource="{x:Bind ViewModel.SelectedTokens }"
PlaceholderText="Add Locations"
MaxHeight="104"
HorizontalAlignment="Stretch"
TextMemberPath="Text"
TokenDelimiter=","
MaximumTokens="3"
Grid.Row="1" Grid.Column="0"
Text="{x:Bind ViewModel.StateMachineScanPath}">
<controls:TokenizingTextBox.SuggestedItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="Accept"/>
<TextBlock Text="{x:Bind Mode=TwoWay}" Padding="4,0,0,0"/>
</StackPanel>
</DataTemplate>
</controls:TokenizingTextBox.SuggestedItemTemplate>
<controls:TokenizingTextBox.QueryIcon >
<SymbolIconSource Symbol="Add"/>
</controls:TokenizingTextBox.QueryIcon>
</controls:TokenizingTextBox>
Appreciate your help in advance, Best regards, Maks.
As you can see in the Generic.xaml the button's name is "QueryButton". Using the `FindDescendants() extension method from the CommunityToolkit.WinUI.UI NuGet package, you can do something like this:
private void MainPage_Loaded(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
{
if (this.TokenizingTextBoxControl
.FindDescendants()
.OfType<Button>()
.Where(x => x.Name is "QueryButton")
.FirstOrDefault() is not Button queryButton)
{
return;
}
queryButton.Click += QueryButton_Click;
}
private void QueryButton_Click(object sender, RoutedEventArgs e)
{
// Show your ContentDialog.
}