如何实现按钮按数据初始化文本并点击切换Show/Hide Comment?
解决方案
要实现按钮文本在「Show Comment」和「Hide Comment」之间切换,只需修改OnButtonClicked方法,根据控件的可见状态动态设置按钮文本即可:
修改后的代码
private void GenerateCommentContent() { var button = new Button(); button.Text = question.Comment == null ? $"+ {Translator.Buttons_AddComment}" : $"{Translator.Buttons_ShowComment}"; button.WidthRequest = 100; button.Clicked += (sender, e) => OnButtonClicked(commentlabel, frame, button); // 其他生成Label、Frame、Editor的逻辑... } private void OnButtonClicked(Label label, Frame frame, Button button) { // 切换Label和Frame的可见性 label.IsVisible = !label.IsVisible; frame.IsVisible = !frame.IsVisible; // 根据当前可见状态设置按钮文本 button.Text = label.IsVisible ? $"{Translator.Buttons_HideComment}" : $"{Translator.Buttons_ShowComment}"; }
逻辑说明
- 初始状态:当
question.Comment存在数据时,按钮文本为Show Comment,此时Label和Frame处于隐藏状态(IsVisible = false)。 - 第一次点击按钮:切换
Label和Frame为可见(IsVisible = true),同时按钮文本改为Hide Comment。 - 再次点击按钮:切换
Label和Frame为隐藏(IsVisible = false),按钮文本改回Show Comment。
这种方式通过控件的可见状态判断按钮文本,比直接判断按钮文本内容更可靠,能避免翻译文本变化导致的判断失效问题。
内容的提问来源于stack exchange,提问作者Funky Sloth
相关产品推荐
相关产品推荐

