我使用XAML在C#中动态创建了按钮。
XAML:
<Grid Name="mainGrid" Grid.Row="1"></Grid>
我用C#创建了这个代码的按钮:
Button dugme = new Button();
dugme.Content = "tap me";
dugme.Tapped += dugme_Tapped;
mainGrid.Children.Add(dugme);
我现在如何更改按钮内容(文字)来自&#34;点击我&#34; to&#34;点击确定&#34;在这种情况下。
void dugme_Tapped(object sender, TappedRoutedEventArgs e)
{
//should I use binding?
}
答案 0 :(得分:1)
正如您在创建按钮时将Content
属性设置为"tap me"
一样,您也可以在事件处理程序中设置它:
void dugme_Tapped(object sender, TappedRoutedEventArgs e)
{
((Button)sender).Content = "tapped ok";
}
那就是说,你在代码注释中询问“我应该使用绑定吗?”并且,由于这是WPF,默认答案是“是”。但是,由于缺乏上下文,很难说如何在这里做到这一点。目前尚不清楚为什么要以编程方式添加Button
实例(在WPF中执行本身非惯用)。
如果你觉得你觉得你有充分的理由避免基于XAML的初始化和绑定来创建Button
实例,你可以继续这种方法来设置Content
属性。在这种情况下,上面的例子应该适合你。
如果你想要一个更加以XAML为中心的方法,你可能应该问一个不同的问题,首先要清楚地解释你的场景,并询问如何以类似WPF的方式初始化按钮,以及如何维护该按钮的Content
属性的状态。
答案 1 :(得分:0)
至于你是否应该使用绑定,这几乎可以肯定,它通过保持视图和模型分离使你的代码更容易维护,尽管你可能有充分的理由。
关于更改文本,您只需在事件处理程序中设置按钮的content属性即可。
默认情况下,触发事件的对象将作为您函数的“sender”参数传递,因此您只需要:
void dugme_Tapped(object sender, TappedRoutedEventArgs e)
{
(sender as Button).Content = "tapped ok";
}
作为你的事件处理程序。