Я пользуюсь MVVM. Есть ли какой-нибудь удобный способ не иметь файлы xaml.cs, но каким-то образом вызывать InitializeComponent ()?
Проверьте это:
<Window x:Class="WpfApplication1.TestBrowser" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Initialize Component Test" Height="300" Width="300"> <StackPanel> <ListBox x:Name="lb"/> <x:Code> <![CDATA[ public TestBrowser() { InitializeComponent(); lb.ItemsSource = new[] { "Hey" }; } ]]> </x:Code> </StackPanel> </Window>
Когда такой файл XAML компилируется, содержимое внутри элемента x: Code сбрасывается внутри частичного класса в файле .g.cs.
Я все равно не рекомендовал бы эту практику. Что касается меня, это делает код менее читабельным, и я не уверен, понимает ли это Blend или Kaxaml.