[UWP] [C#] XAML UWP:如何用自定义属性创建一堆按钮? [英] [UWP][C#]XAML UWP: How to create bunch of Buttons with custom property?

查看:45
本文介绍了[UWP] [C#] XAML UWP:如何用自定义属性创建一堆按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个

< VariableSizedWrapGrid Name =" someName"取向= QUOT;垂直"等等...>< / VariableSizedWrapGrid> 

现在我需要创建一堆按钮 - 类似这样:

 

...

for(int i = 0; i< 15; i ++){

CreateButton(i);

}

....

private void CreateButton(int inId){
Button button = new Button();
button.Name =" CreatedButton" + inId;
button.MYPROPERTY = inId; //不知道如何做这个
button.Click =" ProcessCreatedButtonClick" ;; //不确定这一行是否有效

someName.Children.Add(button);

}

private void ProcessCreatedButtonClick(object sender,RoutedEventArgs e){

id clickedButtonId = ??? //(以某种方式获得MYPROPERTY)
....

}

所以我的问题是:


1)如何设置MYPROPERTY?


2)如何正确清除网格(someName)的内容?将 somename.Children.Clear()工作吗?



谢谢:)

解决方案

Hi MarkPpd



< span style ="font-size:10.5pt; font-family:'Segoe UI',sans-serif;颜色:#333333; border:1pt none windowtext; padding:0in">>>
如何设置MYPROPERTY?


您可以自定义按钮类以设置MYPROPERTY。创建一个继承自Button Class的类,并在
中设置一个新属性Class。您可以参考以下代码:



公共类TestButton:Button 
{
public int MYPROPERTY_ID {get;组; }
}





>>
如何正确清除网格(someName)的内容?将 
somename.Children。清除()  工作?


是的,当somename.Children.Clear()调用时,"somename"控件的内容将从控件中删除。



除此之外你可以使用"+ ="添加一个按钮的事件处理程序。


请参考以下代码:





 private void CreateButton(int inId)
{
TestButton button = new TestButton() ;
button.Name =" CreatedButton" + inId;
button.MYPROPERTY_ID = inId; //不知道如何做这个
按钮。点击+ = ProcessCreatedButtonClick;
button .Content =" inId";
someName.Children.Add(button);

}

private void ProcessCreatedButtonClick(object sender,RoutedEventArgs e)
{
var button = sender as TestButton;
int id = button.MYPROPERTY_ID;

someName.Children.Clear();
}


公共类TestButton:Button 
{
public int MYPROPERTY_ID {get; set;}
}




$



最好的问候,


罗伊


I have a

<VariableSizedWrapGrid Name="someName" Orientation="Vertical" etc...></VariableSizedWrapGrid >

Now I need to create a bunch of buttons - something like this:

...

for(int i=0; i<15; i++){

CreateButton(i);

}

....

private void CreateButton(int inId){ Button button = new Button(); button.Name = "CreatedButton"+inId; button.MYPROPERTY = inId; // not sure how to do THIS button.Click = "ProcessCreatedButtonClick"; // not really sure if this line will work someName.Children.Add(button); } private void ProcessCreatedButtonClick(object sender, RoutedEventArgs e){ id clickedButtonId = ??? //(get MYPROPERTY somehow) .... }

So my questions are:

1) how to set MYPROPERTY?

2) how do I clear the content of my grid (someName) properly? Will somename.Children.Clear() work?

Thanks :)

解决方案

Hi MarkPpd

>> how to set MYPROPERTY?

You could customize a button class to set MYPROPERTY. Create a class inherited from Button Class and set a new property in the Class. You could refer the following code:

  public class TestButton : Button
    {
        public int MYPROPERTY_ID { get; set; }
    }


>> how do I clear the content of my grid (someName) properly? Will somename.Children.Clear() work?

Yes, when somename.Children.Clear() invokes, the content of the "somename" control will be removed from the control.

Besides you could use "+=" to add an event handler to the button.

Please refer the following code:

  private void CreateButton(int inId)
        {
            TestButton button = new TestButton();
            button.Name = "CreatedButton" + inId;
            button.MYPROPERTY_ID = inId; // not sure how to do THIS
            button.Click += ProcessCreatedButtonClick;
            button.Content = "inId";
            someName.Children.Add(button);

        }

        private void ProcessCreatedButtonClick(object sender, RoutedEventArgs e)
        {
            var button = sender as TestButton;
            int id = button.MYPROPERTY_ID;

            someName.Children.Clear();
        }

 public class TestButton : Button
    {
        public int MYPROPERTY_ID { get; set; }
    }



Best regards,

Roy


这篇关于[UWP] [C#] XAML UWP:如何用自定义属性创建一堆按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆