【问题标题】:C# reference TextBlock by nameC# 按名称引用 TextBlock
【发布时间】:2013-07-06 06:00:43
【问题描述】:

我想通过字符串形式的名称从 XAML 页面引用 C# TextBlock。我希望能够在滑块上移动后更改 TextBlock 的文本。我可以根据 Slider 的名称计算 TextBlock 的名称。

我猜我应该以某种方式使用 System.Refelection,但我不知道如何使用。我尝试了以下方法:

...
        var slider = sender as Slider;
        var textblock_Name = slider.Name.Replace("Rotation_Slider", "Rotation_TextBlock");
        var type = this.GetType();
        var field = type.GetField("xRotation_TextBlock");
        var textBlock = field.GetValue(this) as TextBlock;
...

但是我在倒数第二行得到一个空引用异常。我想我可能不应该尝试引用一个字段,但我不知道它到底是什么。

【问题讨论】:

  • 你需要的是绑定,绑定,甚至更多的绑定。你想达到什么目标?我是否认为您有一组滑块并且您想为每个滑块显示值是正确的?
  • 这听起来并不难,但名称在 Xaml 中有一些限制,您能否描述一下需要动态更改名称的演示策略?

标签: c# wpf reflection slider textblock


【解决方案1】:

尝试使用此答案中的 FindChild 函数来查找 TextBlock: https://stackoverflow.com/a/1759923/2486160

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多