我像这样建立我的列表:
public static List<SearchFormula> SearchData(string searchString)
{
var searchResults = new List<SearchFormula>();
SqlDataReader drResults = FormulaUtility.SearchFormulas(searchString);
if ((drResults != null) && (drResults.HasRows))
{
while (drResults.Read())
{
searchResults.Add(new SearchFormula()
{
// id use the GetValue function
Title = drResults.GetString(1),
Description = drResults.GetString(2),
Url = drResults.GetString(3)
// total use the GetValue Function
});
}
}
return searchResults;
}
Run Code Online (Sandbox Code Playgroud)
使用此对象:
public class SearchFormula
{
public string Title { get; set; }
public string Description { get; set; }
public string Url { get; …Run Code Online (Sandbox Code Playgroud) 在父控件中查找控件的FramworkElement.FindName()方法似乎应该直截了当...
但我正在加强anty,似乎框架不喜欢我想做的事情.
首先,我意识到有很多不同的做事方式,请记住这是我在WPF中创建的第一种形式.
我根据集合中的项目数将控件加载到StackPanel中.此方法是必须的,因为集合由[用户输入的URL]中的目录数决定.
该列表将水平堆栈面板构建为垂直堆栈面板,该面板在设计期间放置在表单上.
所以dirStackPanel就在表格上.我将controlStackPanel插入dirStackPanel n次,并用识别名称命名每个:(string)("controlStackPanel"+ n).
我也在使用控件填充controlStackPanel,但考虑到我无法通过名称从父级(dirStackPanel)检索controlstackPanel,这是一个没有实际意义的问题.
例:
var getPanel = (StackPanel) this.dirStackPanel.FindName((string)("controlStackPanel" + n))返回Null
所以要清楚的是,我在AT RUN TIME插入的每个控件都被分配了一个名称,并且可以使用循环轻松检索.但FindName方法不适用于父"StackPanel"的第一个子控件.它不断返回null而不是对象.
有任何想法吗?