首先我是新來WPF和MVVM所以忍耐一下,如果這是一個簡單的問題日誌查看網格在WPF
我創造了在WPF應用程序中的日誌查看器,我有一格的這一願景的日誌標題,您可以單擊並展開以將日誌文本顯示爲網格的一部分,其他所有行都向下移動以適應此文本行。
完成此操作的最佳方法是什麼? 有沒有控件已經存在? 我是否需要創建自己的自定義控件?
首先我是新來WPF和MVVM所以忍耐一下,如果這是一個簡單的問題日誌查看網格在WPF
我創造了在WPF應用程序中的日誌查看器,我有一格的這一願景的日誌標題,您可以單擊並展開以將日誌文本顯示爲網格的一部分,其他所有行都向下移動以適應此文本行。
完成此操作的最佳方法是什麼? 有沒有控件已經存在? 我是否需要創建自己的自定義控件?
你應該使用RowsDetailsTemplate
網格:
<DataGrid Grid.Row="1" Margin="4,0,4,4" AutoGenerateColumns="False" ItemsSource="{Binding SomeItemsSource}" CanUserAddRows="False" AlternatingRowBackground="#FFCED9FF" RowDetailsTemplate="{StaticResource gridDetilsTemplate}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding SomeValue}" Header="SOME TEXT" IsReadOnly="True"/>
...
</DataGrid.Columns>
</DataGrid>
而且在你父母的字典資源模板(可以是任何父詞典資源,或者你也可以在網格中直接寫模板) :
<Window.Resources>
<DataTemplate x:Key="gridDetilsTemplate">
<Border BorderBrush="Black" BorderThickness="1,0,1,1" Margin="2,0,2,2" CornerRadius="0,0,3,3" Padding="4,0,0,0">
<TextBlock Text="{Binding SomeValue}"/>
</Border>
</DataTemplate>
我覺得這是你需要的,一個網格行的細節。希望工作。
這非常適合我的需求,非常感謝! –
嘗試使用擴展器。下面的示例代碼。您可以繼續添加擴展器。只要確保它們很好地放置在Grid(Grid1)中即可獲得乾淨的用戶界面。
<GroupBox x:Name="GroupBox1" Header="User Detail" >
<Grid x:Name="Grid1" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top"
DataContext="yourdatacontext">
<Grid.Resources>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Expander Grid.Column="0" Header="Sample Expander" ToolTip="This is a test" Grid.ColumnSpan="4"
Grid.Row="6">
<Border CornerRadius="3" BorderBrush="#FF5DADD9" BorderThickness="1">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="Label1:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center"/>
<TextBox x:Name="tb1" Grid.Column="1"
HorizontalAlignment="Left" Height="23" Margin="3" Grid.Row="0"
Text="{Binding column, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"
VerticalAlignment="Center" Width="120" />
<TextBlock TextWrapping="Wrap" Width="500" Grid.Column="2" Grid.Row="0"
Text="sample text." />
</Grid>
</Border>
</Expander>
</Grid>
</GroupBox>
你的問題是一個非常糟糕的格式爲Stackoverflow。你需要努力展示你已經嘗試過的東西,爲什麼它不起作用,或者你面臨的具體問題。不過,請參閱我的Log Viewer示例[Here](http://stackoverflow.com/a/16745054/643085)。確保你至少註冊了它。 –