大家好:)我必须从后面的代码中访问每个TextBlock中的参数。我不想直接通过名称为每个元素访问很多元素,所以我想循环执行它。我有那些TextBlocks名称的表格。XAML。以变量名称访问Grid中的每个TextBlock
这是任何选项使用变量作为其名称更改TextBlock参数?
比如我想做某事这样的:(伪代码;))
string[] names={"id1","id2","id3"} // etc.
foreach(string x in names)
// I want to change opacity in each TextBlock which name is in table 'names'
{
x.Opacity = 50;// x used like name of TextBlock from XAML
}
你有任何想法如何做到这一点?或者这是不可能的,我不得不使用许多嵌套循环来做到这一点?
感谢您的帮助! :)
不要这样做。 1.学习MVVM。 2.向视图模型添加“不透明度”属性,将视图中文本块的不透明度绑定到属性,通过更改属性值来调整所有控件的不透明度。 – Athari 2014-09-20 12:11:11
你想介绍给我还是给我写一个这样的例子?我会很感激。我只是XAML和C#的初学者。我认为它应该看起来像这样在xaml: '不透明度=“{绑定opValue}”'和在后面的代码:'公共字符串opValue(获得;私人设置;)' 不幸的是我不知道我是正确的,还是我应该做什么。 – Aneirin 2014-09-20 12:26:49
你需要实现'INotifyPropertyChanged',设置'DataContext'等。只需谷歌的“WPF MVVM教程”或寻找特定的MVVM库,如Caliburn.Micro或MVVMLight的文档。 WPF旨在与MVVM协同工作,因此无论如何您迟早都必须了解WPF(WPF中的WinForms方式很痛苦)。 – Athari 2014-09-20 12:37:54