xamarin.Forms 带编辑器的 DataGrid
xamarin.Forms DataGrid with editor
我正在尝试使用以下代码将编辑器嵌入 Xamarin.Forms.DataGrid
单元格(灵感来自 this sample)
<ContentPage.Content>
<StackLayout>
<dg:DataGrid ItemsSource="{Binding Items}" SelectionEnabled="True" SelectedItem="{Binding SelectedItem}"
RowHeight="70" HeaderHeight="50" PullToRefreshCommand="{Binding RefreshCommand}" IsRefreshing="{Binding IsRefreshing}">
<dg:DataGrid.Columns>
<dg:DataGridColumn Title="Col. 1" PropertyName="Prop. 1" Width="0.7*">
<dg:DataGridColumn.CellTemplate>
<DataTemplate>
<Entry Text="{Binding}" />
</DataTemplate>
</dg:DataGridColumn.CellTemplate>
</dg:DataGridColumn>
</dg:DataGrid.Columns>
</dg:DataGrid>
</StackLayout>
</ContentPage.Content>
现在一切正常,但编辑后的文本与单元格的左上角对齐。所以我尝试使用以下对齐参数之一:
HorizontalOptions="Center" VerticalOptions="Center"
<!-- or >
HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"
但在这两种情况下,我最终都将文本置于单元格的中心,但现在,编辑器没有展开(似乎我有填充)...结果 Center
或者CenterAndExpand
其实是一样的:
谁能帮我得到想要的结果?
编辑:更新了完整网格的定义
奖金问题:如何摆脱编辑器的边框?
你可以试试这个:
<Entry Text="{Binding}" HorizontalTextAlignment="Center" />
额外答案:要去除边框,您需要自定义渲染器。
我正在尝试使用以下代码将编辑器嵌入 Xamarin.Forms.DataGrid
单元格(灵感来自 this sample)
<ContentPage.Content>
<StackLayout>
<dg:DataGrid ItemsSource="{Binding Items}" SelectionEnabled="True" SelectedItem="{Binding SelectedItem}"
RowHeight="70" HeaderHeight="50" PullToRefreshCommand="{Binding RefreshCommand}" IsRefreshing="{Binding IsRefreshing}">
<dg:DataGrid.Columns>
<dg:DataGridColumn Title="Col. 1" PropertyName="Prop. 1" Width="0.7*">
<dg:DataGridColumn.CellTemplate>
<DataTemplate>
<Entry Text="{Binding}" />
</DataTemplate>
</dg:DataGridColumn.CellTemplate>
</dg:DataGridColumn>
</dg:DataGrid.Columns>
</dg:DataGrid>
</StackLayout>
</ContentPage.Content>
现在一切正常,但编辑后的文本与单元格的左上角对齐。所以我尝试使用以下对齐参数之一:
HorizontalOptions="Center" VerticalOptions="Center"
<!-- or >
HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"
但在这两种情况下,我最终都将文本置于单元格的中心,但现在,编辑器没有展开(似乎我有填充)...结果 Center
或者CenterAndExpand
其实是一样的:
谁能帮我得到想要的结果?
编辑:更新了完整网格的定义
奖金问题:如何摆脱编辑器的边框?
你可以试试这个:
<Entry Text="{Binding}" HorizontalTextAlignment="Center" />
额外答案:要去除边框,您需要自定义渲染器。