我試圖找出一種方法來定義自定義用戶控件,如下圖:WPF自電網控制
儘管第一列突出的行,第二列凸顯「內行「,並且對於每個外部行應該有一個用戶可以輸入數據的文本框字段。
我正在努力的是要理解這是否可能。 我想要的所有解決方案都在第二個外行(TextField 2.1.1)所在的位置放置了另一個標籤。
我可以拿出最近的是一個壞的模仿,基本上可以歸結爲一個ItemsControl綁定到一個DataTemplate等被定義:
<ItemsControl Name="SelectedSampleData" Grid.Row="1" ItemsSource="{Binding SelectedSampleData}" ItemTemplate="{StaticResource DefaultTemplate}" />
<DataTemplate x:Key="DefaultTemplate">
<Grid x:Name="GridItem" MaxWidth="{Binding ElementName=Container,Path=ActualWidth}" >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Viewbox Height="20" HorizontalAlignment="Left">
<TextBlock Grid.Row="0" Text="{Binding Path=field1}" Margin="5,1,0,0" Background="LightBlue" />
</Viewbox>
<igDP:XamDataGrid Name="GridConsuntivi" Grid.Row="1" DataSource="{Binding Path=field2List}" Margin="25,0,0,0">
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout Key="DefaultLayout">
<igDP:FieldLayout.Fields >
<igDP:Field Name="label1" IsReadOnly="True">
<igDP:Field.Settings>
<igDP:FieldSettings LabelTextWrapping="Wrap" LabelMaxWidth="100" AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="label2" IsReadOnly="True">
<igDP:Field.Settings>
<igDP:FieldSettings LabelTextWrapping="Wrap" LabelMaxWidth="70" AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="label3" IsReadOnly="True">
<igDP:Field.Settings>
<igDP:FieldSettings LabelTextWrapping="Wrap" LabelMaxWidth="70" AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="label3" IsReadOnly="True">
<igDP:Field.Settings>
<igDP:FieldSettings LabelTextWrapping="Wrap" LabelMaxWidth="95" AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="label4" IsReadOnly="True">
<igDP:Field.Settings>
<igDP:FieldSettings LabelTextWrapping="Wrap" LabelMaxWidth="180" AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
</igDP:FieldLayout.Fields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
<TextBox Margin="25,10,0,0" AcceptsReturn="True" MaxWidth="{Binding ElementName=parent,Path=ActualWidth}" TextWrapping="Wrap" IsEnabled="True" Grid.Row="2" Text="{Binding Path=note}" />
<Separator Grid.Row="3"/>
</Grid>
</DataTemplate>
起着這樣的:
比其他我認爲可以通過一些藝術觸覺(我沒有)修復視覺上的醜陋,我討厭這樣一個事實,即有兩個標題具有相同的信息。我希望它覺得這是一個統一的組成部分。
你有什麼想法嗎?
我在考慮在xamdatagrid的標頭可見性上放置某種轉換器,如果它不是顯示的第一行,它會隱藏它,但我試圖避免這種漂亮的技巧。
我正在使用Infragistics,如果有幫助。
在此先感謝