Разница в том, что в классе InnerB
нет члена val
. где класс InheritedB
расширяет класс B и имеет собственную копию члена val
.
void run(){
val = "new"; //<--- modifies B's val not InheritedB's val
System.out.println(val); // outputs: new
new InnerB().printVal(); // outputs: new
new InheritedB().printVal(); // outputs: old new
}
В вышеприведенном кодовом блоке printVal InnerB обращается к члену контейнера val
, значение которого уже было изменено в методе run
для присвоения значения new .
Но копия val в объекте InheritedB по-прежнему имеет значение « old », не измененное, и функция printVal использует это значение.
Это должно сработать - я настроил его так, чтобы TreeView и ListView совместно использовали основное представление 50/50; если вы этого не хотите, установите «Авто» и «*» или что-то в этом роде. Используйте "LastChildFill" в ваших интересах!
<Window x:Class="Clippy.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="400" Width="600" MinHeight="400" MinWidth="600" Loaded="Window_Loaded" SizeChanged="Window_SizeChanged">
<DockPanel LastChildFill="True">
<Menu Width="Auto" DockPanel.Dock="Top" />
<ToolBar Width="Auto" DockPanel.Dock="Top" />
<StatusBar DockPanel.Dock="Bottom" />
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*" />
<RowDefinition Height="0.5*" />
</Grid.RowDefinitions>
<TreeView Name="categoryTreeView" Grid.Row="0" />
<ListView Name="clipListView" Grid.Row="1" />
</Grid>
</DockPanel>
</Window>
Вместо этого используйте DockPanel. StackPanel явно не заботится о видимом пространстве, тогда как DockPanel выполняет все вычисления своего размера на основе доступного пространства.
Обновление:
Кроме того, по моему опыту, помещая тело окна в представление, и только наличие вида в окне улучшает работу автоматического размера.
По какой-то причине установка всех дочерних элементов непосредственно в Окно не очень удобна для автоматического изменения размера.
Обновление 2:
Установите для свойств ширины и высоты значение "auto"