2014-01-31 2 views
1

У меня есть эта сетка, разделенная на три столбца, но я хочу поддерживать два столбца с шириной = «0,5 *» каждый и один столбец с шириной = «1 *». Столбцы должны заполняться данными, полученными из веб-службы. Как я могу достичь этого требования, исходя из того, сколько данных я получаю?Windows Phone Adjust ColumnDefinitions

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="0.3*" /> 
    <ColumnDefinition Width="0.3*" /> 
    <ColumnDefinition Width="0.3*" /> 
    </Grid.ColumnDefinitions> 
    <StackPanel Grid.Column="0"> 
    <TextBlock Text="{Binding OtherValue1Label}" /> 
    <TextBlock Text="{Binding OtherValue1Value}" /> 
    </StackPanel> 
    <StackPanel Grid.Column="1"> 
    <TextBlock Text="{Binding OtherValue2Label}" /> 
    <TextBlock Text="{Binding OtherValue2Value}" /> 
    </StackPanel> 
    <StackPanel Grid.Column="2"> 
    <TextBlock Text="{Binding OtherValue3Label}" /> 
    <TextBlock Text="{Binding OtherValue3Value}" /> 
    </StackPanel> 

+0

Что вы подразумеваете под «на основе того, сколько данных я получаю»? Ширина столбцов может отличаться в зависимости от данных из webservice? – lisp

ответ

2

Вы можете установить свойство Width 2-й и 3-й ColumnDefinitions «ы в 0, когда требуется только 1-й столбец. Например:

//set column width to 0 
var columns = MyGrid.ColumnDefinitions; 
rows[1].Width = new GridLength(0); 
rows[2].Width = new GridLength(0); 

//set it back to 0.3* 
var columns = MyGrid.ColumnDefinitions; 
rows[1].Width = new GridLength(0.3, GridUnitType.Star); 
rows[2].Width = new GridLength(0.3, GridUnitType.Star); 

Такой же подход может применяться, когда вам понадобятся 1 и 2 столбцы. Просто установите ширину 3-го столбца на 0.

Смежные вопросы