我正在尝试从列表框数据模板中突出显示文本块中的部分文本,而列表框数据模板又通过使用文本框在列表中搜索输入文本来绑定到自定义类的属性。
但问题是只有部分项目突出显示(大部分可见)但是当我最大化窗口并尝试输入另一个字符时,突然所有这些项目都被突出显示我猜测问题可能出在这块代码:
ListBoxItem listboxItemFound= (ListBoxItem)this.listBox1.ItemContainerGenerator.ContainerFromItem(TItem);
由于当项目不可见但项目当前位于列表框中时,此方法返回 null。
不知何故,我猜项目 listboxItem 实例尚未创建,直到您向下滚动或最大化以查看更多项目。
XAML 数据模板:
<DataTemplate>
<Grid Name="gridOfListbox" Height="25" Margin="0,2">
<DockPanel Name="dockpanelWithTxtBlock">
<TextBlock Name="textbloxk" DockPanel.Dock="Left" FontSize="15" TextAlignment="Center">
<Run Text="" /><Run Background="Yellow" Text="" /><Run Text="{Binding ProductID}" />
</TextBlock>
</DockPanel>
</Grid>
</DataTemplate>
如果需要更多代码,请告诉我。
任何帮助将不胜感激!!
此外,如果有任何其他更好的方法可以找到绑定到自定义项目的 listboxItem,请告诉我。非常感谢!