评估ContentControl而不渲染到屏幕

时间:2010-04-05 21:20:12

标签: c# wpf binding

我有一个数据网格,我正在编写一个方法来搜索它以查找一些文本。实际上我的所有列都使用DataTemplateSelector,因此在我的搜索中,我需要能够获取DataTemplate,将其应用于ContentControl,然后找到TextBlock以获取文本以查看它是否符合我的搜索条件。我正在尝试以下但是它似乎没有产生任何结果。我还尝试了一个FindName(“layoutRoot”控件),但它也返回null。

var control = new ContentControl();
control.ContentTemplate = dataTemplate;
control.Content = item;

var txtBox = control.FindChildren<TextBlock>();

2 个答案:

答案 0 :(得分:0)

您是否尝试过VisualTreeHelper的GetChild()/ GetChildrenCount()来枚举所有孩子?

此外,我相信您可以在DataTemplate中的目标控件上设置XAML的Initialized处理程序,并从那里订阅Loaded事件(如果需要)。

答案 1 :(得分:0)

我认为你不会以正确的方式解决这个问题。您应该从希望在您的viewmodel中的列表中获取搜索项。并且您的网格选择项应该绑定到您可以设置为在搜索中找到的项目的属性。如果您希望我通过一些代码示例为您提供更多功能,请告诉我。