WPF中,如果控件数量不定,怎样使用XAML?通过循环?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中,如果控件数量不定,怎样使用XAML?通过循环?相关的知识,希望对你有一定的参考价值。

如果控件数量不定的话,那就是动态加载并显示啦。最好在后台添加。当然如果你指的是DataGrid,listbox这种ItemsControl的Items数目不确定那就另当别论了。追问

我这里是有一个Canvas,Canvas里面有N个(就是数量不定)Line,这些Line的数据来源由Canvas绑定数据。这个能否实现?

追答

懂你意思,比如Canvas的dataContext绑定了一个集合,然后根据集合去生成canvas里面的Line。我没理解错吧?!如果只是单纯的在Canvas里放Lines的话,还只能是在后台做。在canvas的loaded函数里遍历Canvas的datacontext获得lines数据集合,然后再动态生成line.

追问

这个我试试,确实不行的话,就直接用后台代码产生。谢谢啦

参考技术A 前台没办法做到控件数不定, 只能通过后台操作。后台中可能定义一个集合进行操作。

例如List<Button> btns = new List<Button>;
看你什么时候要可以什么时候给它Add一下。追问

我这里是有一个Canvas,Canvas里面有N个(就是数量不定)Line,这些Line的数据来源由Canvas绑定数据。这个能否实现?

参考技术B 绑定observerblecollection,使用datatemplate.追问

能有具体示例代码么?

参考技术C 比如你在vm定义一个command,然后在view层使用了这个command,那么这个command的parameter就可以指向view层里的控件埃控件作为parameter传进vm层的command里做逻辑处理。

以上是关于WPF中,如果控件数量不定,怎样使用XAML?通过循环?的主要内容,如果未能解决你的问题,请参考以下文章

WPF高手么,怎样在XAML中动态加载Rectangle控件,要能运行的啊!

wpf怎样使用DataGrid控件

您如何在 WPF 中动态(通过代码)添加在 XAML 中制作的自定义控件?

WPF类型转换器和标记扩展

WPF前台xaml中的控件名在后台拿不到,后台代码中显示“当前上下文不存在名称‘xxx’”

WPF/XAML:使用相同事件的多个控件 - 有没有更简单的方法?