3
我寫了簡單的XAML文件:異常的XAML解析
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="250"
WindowStartupLocation="CenterScreen"
ResizeMode="NoResize" Title="Окошко" Width="250" Height="400">
<Grid>
<!--Настраиваем сетку-->
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--Теперь по сетке раскидываем контролы-->
<GroupBox x:Name="listTitle" x:FieldModifier="public" Header="Список элементов:" Margin="5"
Padding="5">
<!--В объекте ListBox указываем, что источником данных для элементов
списка следует использовать свойство DataContext родительского элемента-->
<ListBox x:Name="listbox" x:FieldModifier="public"
ItemsSource="{Binding}" SelectionMode="Multiple">
<!--Шаблон отображения элементов списка-->
<ListBox.ItemTemplate>
<DataTemplate>
<!--Указываем, что каждый элемент следует отображать
в виде текста, который должен считываться из свойства "Value"-->
<TextBlock Text="{Binding Path=Value}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</GroupBox>
<GroupBox Header="Примечание:" Grid.Row="1" Margin="5" Padding="5">
<TextBlock x:Name="txtNotes" x:FieldModifier="public" TextWrapping="Wrap"/>
</GroupBox>
<StackPanel Orientation="Horizontal" Grid.Row="2"
HorizontalAlignment="Right">
<Button x:Name="btnAccept" x:FieldModifier="public" Margin="5"
Padding="5" IsDefault="True">Принять</Button>
<Button x:Name="btnExit" x:FieldModifier="public" Margin="5"
Padding="5" IsCancel="True">Выход</Button>
</StackPanel>
</Grid>
</Window>
這是簡單的窗口:
我在我的代碼解析此:
using (io.FileStream fs = new io.FileStream(fileFullName, io.FileMode.Open)) {
depObj = XamlReader.Load(fs) as DependencyObject;
fs.Close();
}
它的工作原理在.NET 4.0中很好,但在.NET 3.5 SP1中,我得到異常:
System.Windows.Markup.XamlParseException發生
消息=屬性 'FieldModifier' 在XML命名空間 'http://schemas.microsoft.com/winfx/2006/xaml' 不存在。 17號線位置 '38'。
爲什麼會出現這種情況?
謝謝@Adam窗臺 –
這也似乎是,如果你用'X發生:FieldModifier'一個DataTemplate內,大概類似的原因。 – dlf