在后面创建数据模板代码

2023-12-06

我正在尝试创建一个用于显示数据的列表框视图,并且希望它包含一个带有 2 列“产品 ID 和产品条形码”数据模板的列表框

我想使用纯 C# 代码创建它,或者如果可能的话通过 xaml 加载它?如果我可以创建一个模板,我就可以将 C# 作为某种资源。

到目前为止我所做的是: 在 XAML 中:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="37*" />
        <RowDefinition Height="88*" />
    </Grid.RowDefinitions>
    <TextBlock Text="Type Your Search :" HorizontalAlignment="Left"  VerticalAlignment="Bottom" Width="112" Height="15.96" Margin="20,0,0,4" />

    <TextBox HorizontalAlignment="Right" VerticalAlignment="Bottom" Height="25" Width="300" Margin="0,0,44,0" x:Name="txtCAuto" TextWrapping="NoWrap" HorizontalContentAlignment="Right" />

    <ListBox x:Name="lbSuggestion" SelectionChanged="lbSuggestion_SelectionChanged" Foreground="Black" Width="300" Margin="0,0,44,0"  FlowDirection="RightToLeft" Background="LightYellow" Grid.Row="1" Visibility="Collapsed"  ScrollViewer.HorizontalScrollBarVisibility="Auto" ItemsSource="{Binding}"  HorizontalAlignment="Right" VerticalAlignment="Top" HorizontalContentAlignment="Right" BorderBrush="Transparent"  Grid.IsSharedSizeScope="True">
    </ListBox>
</Grid>

在隐藏代码中:

string typedString = txtCAuto.Text.ToUpper();
        List<string> autoList = new List<string>();
        autoList.Clear();

         prodDetails ps = SelProd4Sale();

        foreach (string item in ps.ProdBrcdList)
        {
            if (!string.IsNullOrEmpty(txtCAuto.Text))
            {
                if (item.StartsWith(typedString))
                {
                    //autoList.Add(item);
                    FrameworkElementFactory colProdID = new FrameworkElementFactory(typeof(TextBlock));
                    Binding prodID = new Binding(ps.ProdIDList.ToString());
                    colProdID.SetBinding(TextBlock.TextProperty, prodID);

                    FrameworkElementFactory colProdBarcode = new FrameworkElementFactory(typeof(TextBlock));
                    Binding prodBarcode = new Binding();
                    prodBarcode.Path = new PropertyPath(ps.ProdBrcdList.ToString());
                    colProdBarcode.SetBinding(TextBlock.TextProperty, prodBarcode);


                    FrameworkElementFactory sb = new FrameworkElementFactory(typeof(StackPanel));
                    sb.AppendChild(colProdID);
                    sb.AppendChild(colProdBarcode);

                    dTemplate = new DataTemplate { VisualTree = sb };
                    dTemplate.Seal();


                }
            }
        }

        if (autoList.Count > 0)
        {
            lbSuggestion.ItemTemplate = dTemplate;
            //lbSuggestion.ItemsSource = autoList;
            lbSuggestion.Visibility = Visibility.Visible;
        }
        else if (txtCAuto.Text.Equals(""))
        {
            lbSuggestion.Visibility = Visibility.Collapsed;
            lbSuggestion.ItemsSource = null;
        }
        else
        {
            lbSuggestion.Visibility = Visibility.Collapsed;
            lbSuggestion.ItemsSource = null;
        }

但没有出现任何数据,请任何建议。 谢谢,


您可以在 xaml 中定义资源,并在后面的代码中检索它(如果它有)x:Key定义的。

在你的 xaml 中:

<DataTemplate x:Key="anyId">...</DataTemplate>

在你的代码后面:

var dataTemplate = Application.Current.TryFindResource("anyId") as DataTemplate;

or

var dataTemplate = Application.Current.FindResource("anyId") as DataTemplate;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在后面创建数据模板代码 的相关文章

随机推荐

  • 如何从文件中读取两行并在 for 循环中创建动态键?

    在以下数据中 我尝试运行一个简单的马尔可夫模型 假设我有一个具有以下结构的数据 pos M1 M2 M3 M4 M5 M6 M7 M8 hybrid block S1 S2 S3 S4 S5 S6 S7 S8 1 A T T A A G A
  • 空基优化 MSVC

    具有多重继承的空基优化似乎在 msvc 2010 中仍然被破坏 目前 它似乎只适用于派生自的第一个类型 因此 如果您从多个空基派生 则子类型最终会产生更多字节 只是无用的填充 比它需要的 显然这种情况已经有一段时间了 https conne
  • 使用maven将javascript文件打包到Jar中?

    我是 Maven 2 的新手 尝试使用 maven 将一组 javascript 如 Dojo 库 打包到 jar 库中 没有 java 类 但只有带有 js 扩展名的文件 所以我想我应该尝试maven assembly plugin 这里
  • 拆分 NSString 以访问一个特定的部分

    我有一个像这样的字符串 10 04 2011 我只想将 10 保存在另一个字符串中 我怎样才能做到这一点 NSArray foo 10 04 2011 componentsSeparatedByString NSString firstBi
  • 如何测试x是否是通用集的成员?

    我有一个列表 L 并且x in L如果 x 是 L 的成员 则计算结果为 True 我可以用什么代替 L 按顺序x in smth将独立于 x 的值评估为 True 所以 我需要一些东西 包含所有对象 包括它自己 因为 x 也可以是这个 s
  • CoreData 错误:API 滥用:尝试序列化非拥有协调器上的存储访问

    Note 这个帖子不适用 因为我实际上使用 CoreData In 这个帖子最后一个答案建议在添加新对象之前获取新后台线程中的所有项目 但这是在我的代码中完成的 这个帖子建议在保存项目上下文之前对项目进行故障排除 但这也在我的代码中完成 我
  • C# 中同一 LAN 上的 MAC 地址到 IP 地址

    有没有办法在 C 中找到 MAC 地址到 IP 地址之间的映射 我认为 RARP 应该能够做到这一点 C 中是否有可用的 API 为什么不生成一个进程来调用rarp并从进程的输出中读取输入流 这是一种真正便宜 简单 愉快的做法 在我的脑海中
  • javascript - 将变量插入正则表达式

    我有以下工作正常 允许表单字段在空白或包含单词 hello 或通过其他验证时有效 var re new RegExp hello FG d 5 d 5 AB 但我想让 hello 这个词成为一个变量的值 我已经尝试过 但它似乎不再起作用 v
  • 如何在 VS 2008 中用 HTML 标记快速包围文本?

    我正在使用 Visual Studio 2008 编辑器 有没有办法以一段文本为例 突出显示它并使用快捷方式快速添加标记 例如 假设我有一条短信 我去了 the store我想将其加粗 我必须输入 b the store b 有没有更快更简
  • 如何获取视图html并返回客户端

    下面是返回视图到 jquery 函数的代码片段 但我想知道如何提取或获取视图 html 并返回到客户端 function myddl change function var url this data url var value this
  • 是否有 C# 相当于 Java ConcurrentHashMap

    我需要 C 中的字典 哈希图 允许您执行以下操作 无需锁定即可同时输入值和迭代 锁只放 get没有被锁定 可能会同时get很多次 Thanks 在这里查看 ConcurrentDictionary http msdn microsoft c
  • android操作系统可以捕获蓝牙鼠标右键单击和滚轮事件吗?

    我有一部 android 2 3 5 手机 它可以连接到蓝牙鼠标 但我发现它只响应左键单击和鼠标移动 if event getAction MotionEvent ACTION DOWN Left Button else if event
  • Cordova/PhoneGap无法添加WP7/WP8/Windows平台

    我在 Win8 上尝试添加 wp8 平台时遇到错误 详细信息如下 CordovaWP8 gt cordova d 平台添加 wp8 wp8 的科尔多瓦库已经存在 无需下载 继续 检查平台 wp8 是否通过最低要求 检查 wp8 要求 运行
  • Visual Studio 2015 Intellisense 键盘选项

    首先 我是在这里问这个问题 而不是在 Microsoft 论坛上 因为它们是 嗯 你知道它们是什么 我喜欢 VS2015 Intellisense 自动完成功能 当我需要它们时 但他们愚蠢地添加了空格键作为选择键 更愚蠢的是 他们还添加了
  • 获取WPML的语言代码

    我正在尝试获取 WPLM wordpress 插件的语言代码 这就是我在没有运气的情况下所做的 p Spanish text p 知道问题出在哪里吗 我检查了一些教程 他们就是这样做的 es En不是有效的语言代码 你只想使用es p Sp
  • 为什么我不能使用引用子类型实例的父类型的引用来调用子类方法?

    我正在学习Java 同时试图理解继承 我无法弄清楚为什么子类 walk 中的重写方法被执行 但其他 xyz 方法却没有被执行 class Person public void walk System out println walking
  • 按欧拉角输入旋转四元数

    我正在编写一段代码来控制 3D 空间中的机械臂 机械臂通过四元数处理旋转 但我希望用户通过改变偏航 俯仰和滚动来控制它 因为人类使用这些更明智 我编写了函数来获取用户想要在每个方向 滚动 俯仰 偏航 旋转手臂的量并输出新的四元数 我将 cu
  • 使用 perl 从远程主机读取文件

    我正在尝试从 ubuntu 机器读取位于同一 LAN 中远程主机 ubuntu 上的 root 目录下的文件 temp txt ssh 和 ftp 已打开 perl 脚本能够连接 并出现一个 OpenSSH 对话框 要求输入密码 然后程序存
  • 使用线程睡眠更新 UI

    我正忙于为 Android 设备制作应用程序 现在我正在测试一些东西 我想改变背景颜色有限次 比如说 5 次 每次背景改变时 我希望它在 2 3 秒后再次改变 如果我使用 Thread 类 它会在 Thread 完成后加载整个模板 您看不到
  • 在后面创建数据模板代码

    我正在尝试创建一个用于显示数据的列表框视图 并且希望它包含一个带有 2 列 产品 ID 和产品条形码 数据模板的列表框 我想使用纯 C 代码创建它 或者如果可能的话通过 xaml 加载它 如果我可以创建一个模板 我就可以将 C 作为某种资源