Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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# 带有自定义项模板的WPF列表框_C#_.net_Wpf_User Interface_Wpf Controls - Fatal编程技术网

C# 带有自定义项模板的WPF列表框

C# 带有自定义项模板的WPF列表框,c#,.net,wpf,user-interface,wpf-controls,C#,.net,Wpf,User Interface,Wpf Controls,我正在开发一个与Twitter交互的演示应用程序。我想创建一个类似twitter网站的控件,tweets列表 我做了以下工作,它是一个列表框,里面有多个StackPanel。如何在考虑性能的情况下创建这些控件。请看以下列表: <ListBox Margin="50"> <ListBoxItem> <StackPanel> <TextBlock FontSize="60"

我正在开发一个与Twitter交互的演示应用程序。我想创建一个类似twitter网站的控件,tweets列表

我做了以下工作,它是一个列表框,里面有多个StackPanel。如何在考虑性能的情况下创建这些控件。请看以下列表:

<ListBox Margin="50">
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="60"
                                       >James T. Kirk</TextBlock>
                <TextBlock FontSize="35"
                                       >Rank: Captain</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Commanding Officer</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#AAAAAA">Current action: Sleeping</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="50"
                                       >Spock</TextBlock>
                <TextBlock FontSize="30"
                                       >Rank: Commander</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Executive (First)</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#FFAAAA">Current action: Out for duty</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="40"
                                       >Leonard McCoy</TextBlock>
                <TextBlock FontSize="22"
                                       >Rank: Lt. Commander</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Chief Medical Officer</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#AAAAAA">Current action: Sleeping</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="40"
                                       >Montgomery Scott</TextBlock>
                <TextBlock FontSize="22"
                                       >Rank: Lt. Commander</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Chief Engineer</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#FFAAAA">Current action: Out for duty</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="30"
                                       >Hikaru Sulu</TextBlock>
                <TextBlock FontSize="18"
                                       >Rank: Lieutenant</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Helm Officer</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#AAAAAA">Current action: Sleeping</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="30"
                                       >Nyota Uhura</TextBlock>
                <TextBlock FontSize="18"
                                       >Rank: Lieutenant</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Communications Officer</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#AAAAAA">Current action: Sleeping</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="30"
                                       >Pavel Chekov</TextBlock>
                <TextBlock FontSize="18"
                                       >Rank: Ensign</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Navigator</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#AAAAAA">Current action: Sleeping</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="30"
                                       >Christine Chapel</TextBlock>
                <TextBlock FontSize="18"
                                       >Rank: Enlisted Nurse</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Nurse</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#AAAAAA">Current action: Sleeping</TextBlock>
            </StackPanel>
        </ListBoxItem>
        <ListBoxItem>
            <StackPanel>
                <TextBlock FontSize="30"
                                       >Janice Rand</TextBlock>
                <TextBlock FontSize="18"
                                       >Rank: Enlisted Yeoman</TextBlock>
                <TextBlock FontSize="18"
                                       >Position: Yeoman</TextBlock>
                <TextBlock FontSize="18"
                                       Foreground="#AAAAAA">Current action: Sleeping</TextBlock>
            </StackPanel>
        </ListBoxItem>
    </ListBox>

谢谢。

我投票将此问题作为离题题结束,因为它属于“开”的问题。我认为您应该先阅读此问题,然后再尝试结束它。处理你的行为是很烦人的。@SilvioSantos你在你的帖子里没有问任何问题,所以不清楚你想要什么样的帮助。此外,上面的XAML中没有绑定:您可能希望查看MVVM(Model-View-ViewModel),因为这是在WPF中执行类似操作的首选方法。如果采用这种方法,您将把
ListBox
控件绑定到一个集合,然后该控件将为您处理UI虚拟化,从而提高性能。我同意Steven Rands的观点,如果没有合适的数据模型绑定,您将无法获得数据绑定和虚拟化。好的,这样更好。我将在几分钟内用模型更新问题。谢谢
//I would do something like this:
var tweets = await TwitterUserHelper.GetTweetsAsync();
foreach(var tweet in tweets) {
    MyListBox.Items.Add(new CustomListboxItemFromTemplate(tweet));
}