Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用唯一id以编程方式创建按钮_C#_Wpf_Xaml_Button_Dynamic - Fatal编程技术网

C# 使用唯一id以编程方式创建按钮

C# 使用唯一id以编程方式创建按钮,c#,wpf,xaml,button,dynamic,C#,Wpf,Xaml,Button,Dynamic,我创建了一些按钮,首先填充一个包含get/set方法的类,然后在XAML中使用该信息 C# List movies=newlist(); ... ... MovieListView.ItemsSource=电影; XAML 然而问题是,我需要每个按钮都有一个唯一的id。我在别处读到,这不能在XAML中完成,但我不确定如何或在C#代码中的何处创建这些按钮。我认为这里最灵活的解决方案是定义一种行为: public class UniqueNameBehavior : Behavior<F

我创建了一些按钮,首先填充一个包含
get/set
方法的类,然后在
XAML
中使用该信息

C#

List movies=newlist();
...
...
MovieListView.ItemsSource=电影;
XAML



然而问题是,我需要每个按钮都有一个唯一的id。我在别处读到,这不能在
XAML
中完成,但我不确定如何或在
C#
代码中的何处创建这些按钮。

我认为这里最灵活的解决方案是定义一种行为:

public class UniqueNameBehavior : Behavior<FrameworkElement>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        //assign unique name to the associated element, for example:
        AssociatedObject.Name = Guid.NewGuid().ToString().Replace("-", null);
    }
}
公共类UniqueNameBehavior:行为
{
受保护的覆盖无效附加()
{
base.onatached();
//为关联元素指定唯一名称,例如:
AssociatedObject.Name=Guid.NewGuid().ToString().Replace(“-”,null);
}
}
在XAML中,将此行为附加到任何元素:

<Button>
    <i:Interaction.Behaviors>
        <local:UniqueNameBehavior/>
    </i:Interaction.Behaviors>
</Button>


其中
xmlns:i=”http://schemas.microsoft.com/expression/2010/interactivity“
来自
System.Windows.Interactivity
assembly.

感谢您的帮助Grx70!
public class UniqueNameBehavior : Behavior<FrameworkElement>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        //assign unique name to the associated element, for example:
        AssociatedObject.Name = Guid.NewGuid().ToString().Replace("-", null);
    }
}
<Button>
    <i:Interaction.Behaviors>
        <local:UniqueNameBehavior/>
    </i:Interaction.Behaviors>
</Button>