【问题标题】:C# Visual Studio 2017 cannot implicitly convert type string to windows.ui.xaml.controls.textblockC# Visual Studio 2017 无法将类型字符串隐式转换为 windows.ui.xaml.controls.textblock
【发布时间】:2017-07-31 01:38:33
【问题描述】:


刚开始在 c# 中并想创建简单的 UWP 应用程序,我有 TextBlock 和 Button,我想在按下 Button 时 TextBlock 文本更改但总是出错:

        private void Button_Click(object sender, RoutedEventArgs e)
    {
        TextBlock Text = "HELLO";
    }

CS0029 C# 无法将类型“字符串”隐式转换为“windows.ui.xaml.controls.textblock”

我很困惑,为什么文本字段不理解字符串。
感谢您的帮助。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Button Content="Button" HorizontalAlignment="Left" Height="50" Margin="105,306,0,0" VerticalAlignment="Top" Width="146" Click="Button_Click"/>
    <TextBlock HorizontalAlignment="Left" Margin="56,141,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="107" Width="241" SelectionChanged="TextBlock_SelectionChanged" FontSize="36"/>
</Grid>

【问题讨论】:

    标签: c# xaml uwp type-conversion


    【解决方案1】:

    xaml:

    <Grid>
    <Button Name="btn" Click="Button_Click" Content="Button"/>
    <TextBlock Name="tb"/>
    </Grid>
    

    xaml.cs:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        tb.Text = "HELLO";
    }
    

    或删除 Click 事件并将其放在构造函数中

    btn.Click += (se, arg) => tb.Text = "HELLO";
    

    顺便说一句,TextBlock 没有 SelectionChanged 事件

    【讨论】:

      【解决方案2】:

      解释克里斯托弗在上面做了什么(他的代码是正确的)

      他在 XAML 代码中向 TextBlock 对象添加了一个标识符。

      Name="tb"
      

      然后在 C# 代码中他使用标识符来引用 TextBlock 对象。

      既然你说你是 C# 新手,让我给你一个黄金建议。总是给变量和对象 (例如按钮、文本框等) 名称 (标识符) 与它们的分配有关。这样,您以后在代码中使用它们就容易多了。

      缩短几个常用命名对象的小技巧:

      • 按钮 = btn
      • 文本框 = tbx
      • 标签 = lbl

      【讨论】:

      • 这些是一些不好的建议。
      • 您要么不理解显而易见的一点,即应用某些东西的按钮例如可以命名为 btnApply 而不仅仅是命名为“btn”,或者我很想听听您的陈述的解释.
      • 这里给你一些建议。首先,使用x:Name 命名您的控件,不要 Name。其次,不要使用缩写作为名称的一部分。他们令人困惑。你要怎么命名AppBarButtonRadioButtonToggleButtonRepeatButton等等?假设你有一个 Button 提交,就叫它“提交”。
      • @MarianDolinský 看看所有 MSFT 官方文档,你很少看到有人这样做。如果将 AppBarButton 扩展为 ExtendedAppBarButton 会怎样?那么EABB呢?您可能知道它是什么,但仅通过查看它就会让其他开发人员感到困惑。阅读this
      • @MarianDolinský 哦,是的,这绝对是可能的。 :) 我倾向于使用 verb 来描述按钮,但如果你想在最后添加“按钮”,比如SubmitButton,那就太好了。我相信内置控件正在这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      • 2014-05-15
      相关资源
      最近更新 更多