Cobra91151
Cobra91151

Reputation: 640

UWP development issues

I'm developing UWP app and want to set 2 columns for GridView or ListView by code.

Code:

GridView ^gView = ref new GridView();
ListView ^lView = ref new ListView();

I can't find any code or documentation how to do it programmatically. Thanks.

Upvotes: 0

Views: 90

Answers (1)

Xie Steven
Xie Steven

Reputation: 8591

Yes I want 2 columns for the Grid. For example first column is property, second - data. How to achieve it by code.

I could not understand why you want to do it programmatically. In general, customizing its DataTemplate on XAML page directly is easy. For example:

<GridView ItemsSource="{Binding xx}">
        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition></ColumnDefinition>
                        <ColumnDefinition></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <TextBlock Grid.Column="0" Text="{Binding property}"></TextBlock>
                    <TextBlock Grid.Column="1" Text="{Binding data}"></TextBlock>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
</GridView>

If you have to specify the DataTemplate programmatically, you could do like the following:

<Page.Resources>
    <DataTemplate x:Key="datatemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="0" Text="{Binding property}"></TextBlock>
            <TextBlock Grid.Column="1" Text="{Binding data}"></TextBlock>
        </Grid>
    </DataTemplate>
</Page.Resources>

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <GridView x:Name="gd" ItemsSource="{Binding}">

    </GridView>
</Grid>
public MainPage()
{
    this.InitializeComponent();
    gd.ItemTemplate = this.Resources["datatemplate"] as DataTemplate;
}

It's C# code, you would need to convert it to C++.

Upvotes: 1

Related Questions