如何从c#代码动态添加超链接按钮到列表框中的堆栈面板?

时间:2012-04-11 12:07:52

标签: windows-phone-7

您好我需要您的帮助: -

我有一组用逗号分隔的字符串类型的电话号码,现在我想将每个电话号码分配给超链接,点击它会调用PhoneCallTask​​并拨打该特定电话号码。

1)那么,如何将每个电话号码分配给超链接(我们应该在c#代码隐藏中动态生成超链接吗?)

2)如果是这样,如何动态生成超链接按钮并将其添加到列表框中的堆栈面板?

3)我怎么知道点击了哪个超链接按钮?

4)所有HyperlinkBut​​ton都指向相同的超链接点击事件?

先谢谢。

1 个答案:

答案 0 :(得分:3)

在MainPage.xaml中,将其添加到ContentPanel控件中:

<ListBox x:Name="PhoneNumbersList">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <HyperlinkButton Content="{Binding}" Click="PhoneNumberHyperlinkButton_Click" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

然后,在后面的MainPage代码中,添加以下代码:

public MainPage()
{
    InitializeComponent();

    var phoneNumbers = new string[] { "9999999", "8888888", "7777777" };

    PhoneNumbersList.ItemsSource = phoneNumbers;
}

private void PhoneNumberHyperlinkButton_Click(object sender, RoutedEventArgs e)
{
    var phoneNumberHyperlinkButton = (HyperlinkButton)sender;

    var phoneNumber = (string)phoneNumberHyperlinkButton.Content;

    new Microsoft.Phone.Tasks.PhoneCallTask()
    {
        PhoneNumber = phoneNumber
    }.Show();
}

就是这样!