我有一个ViewModel,其中包含一个observable属性
[ObservableProperty]
private IList<string> _selectedTokens;
字符串
此属性已初始化如下:
_selectedTokens = new List<string>();
_selectedTokens.Add(@"Z:\Exchange");
型
此属性绑定到TokenizedTextBox,如下所示
<controls:TokenizingTextBox
x:Name="TokenBox"
MaxHeight="104"
HorizontalAlignment="Stretch"
ItemsSource="{x:Bind ViewModel.SelectedTokens}"
MaximumTokens="3"
PlaceholderText="Add Locations"
TextMemberPath="Text"
TokenDelimiter=",">
<controls:TokenizingTextBox.SuggestedItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="Accept" />
<TextBlock
Padding="4,0,0,0"
Text="ttt" />
</StackPanel>
</DataTemplate>
</controls:TokenizingTextBox.SuggestedItemTemplate>
<controls:TokenizingTextBox.TokenItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="Admin" />
<TextBlock
Padding="4,0,0,0"
Text="{Binding ???}" />
</StackPanel>
</DataTemplate>
</controls:TokenizingTextBox.TokenItemTemplate>
<controls:TokenizingTextBox.QueryIcon>
<SymbolIconSource Symbol="Add" />
</controls:TokenizingTextBox.QueryIcon>
</controls:TokenizingTextBox>
型
这段代码是工作,除了我没有看到通过ViewModel初始化添加的tokenbox中的文本,我只能看到图标。如你所见,我已经写好了。在xaml代码中,我应该将我的集合绑定到数据模板,但我只是不知道如何正确绑定集合并使其工作,因此我可以看到文本以及图标...
提前感谢你,最好的问候,马克。
P.S.
上面的xaml代码是从“WinUI Gallery 2.0”应用程序中借用和采用的
1条答案
按热度按时间bn31dyow1#
将项目添加到
List
不会通知UI更新。在这种情况下,至少需要使用ObservableCollection
而不是List
。字符串
更新
DataTemplate
应该是这样的:型
或者更好:
型