Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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
Silverlight 如何在Windows Phone 7中显示嵌入表的行?_Silverlight_Windows Phone 7 - Fatal编程技术网

Silverlight 如何在Windows Phone 7中显示嵌入表的行?

Silverlight 如何在Windows Phone 7中显示嵌入表的行?,silverlight,windows-phone-7,Silverlight,Windows Phone 7,我正在开发一个应用程序,其中包含以下格式的行。为了清楚起见,我已经对行进行了编号。这些行交替使用背景,因此偶数行都是一种颜色,奇数行是另一种颜色。我使用了一个包含x行的网格,在每行中我创建了另一个包含两行两列的网格来组织数据。我是WP7开发人员的新手,对Silverlight有一点经验。似乎应该有一种更简单的方法来实现这一点,但我还没有找到合适的用户控件。感觉上我做这件事很难,但我还没有找到一个为这种布局设计的用户控件 -------------------------------- 1

我正在开发一个应用程序,其中包含以下格式的行。为了清楚起见,我已经对行进行了编号。这些行交替使用背景,因此偶数行都是一种颜色,奇数行是另一种颜色。我使用了一个包含x行的网格,在每行中我创建了另一个包含两行两列的网格来组织数据。我是WP7开发人员的新手,对Silverlight有一点经验。似乎应该有一种更简单的方法来实现这一点,但我还没有找到合适的用户控件。感觉上我做这件事很难,但我还没有找到一个为这种布局设计的用户控件

--------------------------------
1       label: data
               more data
--------------------------------
2       label: data
               more data
--------------------------------
3       label: data
               more data
--------------------------------

您可以使用列表框而不是嵌套网格来完成此操作。 例如,创建一个新的列表项目并执行以下操作:

<StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal" Background="{Binding Converter={StaticResource myconverter}}">
在mainpage.xaml中,将第35行更改为以下内容:

<StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal" Background="{Binding Converter={StaticResource myconverter}}">

这应该是一个工作示例,您可以根据需要进行调整。

谢谢,关于将标签与两行数据对齐,我应该继续使用嵌入式网格,还是有其他控件允许您以较少的工作量完成这项工作?网格似乎是完全可以接受的。是网格中的网格给我敲响了警钟。对于只有一行或一列的轴网,还有更好的替代方案。如StackPanel或ListBox,具体取决于您的需要。在你的情况下,你可以考虑一个水平对齐的面板。此外,请投赞成票,如果有帮助,请接受答案。
public class MyConverter: IValueConverter
{
    bool flag = false;

    SolidColorBrush brush1 = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
    SolidColorBrush brush2 = new SolidColorBrush(Color.FromArgb(255, 0, 0, 255));

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        flag = !flag;
        return flag ? brush1 : brush2;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}