2016-09-26 44 views
0

我添加了DataGrid列,因爲我想自定義他們像列寬等,之後我開始接收該彈出消息。當我根據<DataGrid.Columns>刪除數據時,一切都很好,我不知道爲什麼會發生這種情況。我對WPF很陌生,我不能發現錯誤。WPF錯誤 - 「在'system.windows.baml2006.typeconvertermarkupextension'上提供值引發異常。」

 <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="10*" /> 
    </Grid.ColumnDefinitions> 

    <DataGrid Grid.Column="0" CanUserAddRows="False" AutoGenerateColumns="False" Name="datagrid1" Margin="10,128,10,0" Background="Transparent"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Path=ProductName}" Header="Product Name" MinWidth="30" FontSize="15px" /> 
      <DataGridTextColumn Binding="{Binding Path=Quantity}"  Header="Quantity"  MinWidth="30" FontSize="15px" /> 
      <DataGridTextColumn Binding="{Binding Path=NumberOfOrder}" Header="Order Number" MinWidth="30" FontSize="15px" /> 
      <DataGridTextColumn Binding="{Binding Path=CustomerName}" Header="Customer"  Width="*"  FontSize="15px" /> 
     </DataGrid.Columns> 
    </DataGrid> 
+0

我懷疑寬== 「*」 的問題,請通過刪除檢查WIDTH = 「*」,設置一些值到寬。 –

+0

不,不是這樣的。 *大小列的寬度是通過爲自動和固定寬度列分配空間,然後劃分剩餘空間來計算的。所以如果只有一個*大小的列,它會得到所有剩餘的空間,這就是爲什麼我使用「*」和結束。 (像我最後一欄) –

回答

0

FontSizedouble,所以 '像素' 被引發錯誤。 嘗試改變FontSize只是 '15'

<DataGrid.Columns> 
    <DataGridTextColumn Binding="{Binding Path=ProductName}" Header="Product Name" MinWidth="30" FontSize="15" /> 
    <DataGridTextColumn Binding="{Binding Path=Quantity}"  Header="Quantity"  MinWidth="30" FontSize="15" /> 
    <DataGridTextColumn Binding="{Binding Path=NumberOfOrder}" Header="Order Number" MinWidth="30" FontSize="15" /> 
    <DataGridTextColumn Binding="{Binding Path=CustomerName}" Header="Customer"  Width="*"  FontSize="15" /> 
</DataGrid.Columns> 
+0

是的,夥計,這是真的!它現在有效,但我看到某個地方有人使用px,我看到它的工作,這裏是我看到的代碼之前,這使我困惑了現在..''你能稍微解釋一下,px如何爲這個人工作? –

+0

由於它是一個自定義的'DataGridTextColumn',他可能已經重寫了'FontSize'屬性(不知道這是否可能,只是猜測)。除此之外,它不應該工作 – Blinx

+0

伴侶,反正謝謝:) –

相關問題