3

XAML を学習していますが、コントロールのコンテンツを子ウィンドウから設定プロパティにバインドする際に問題が発生しています。

より明確にするために作成した簡単な例を次に示します。メインウィンドウから子を呼び出す:

Private Sub Button1_Click(sender As Object, e As RoutedEventArgs) Handles Button1.Click
    Dim OwndWindow As New WindowChild
    OwndWindow.Owner = Me
    OwndWindow.ShowDialog()
End Sub

そして、これは子供です:

<Window x:Class="WindowChild"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:src="clr-namespace:WpfApplication2"
    Title="WindowChild" Height="300" Width="300">
    <Window.Resources>
        <ObjectDataProvider x:Key="ObjDatPro" ObjectType="{x:Type src:TestSettings}"></ObjectDataProvider>
    </Window.Resources>

    <Grid DataContext="{Binding Source={StaticResource ObjDatPro}}">
        <CheckBox Content="CheckBox" Margin="0" HorizontalAlignment="Center" VerticalAlignment="Center"
                  IsChecked="{Binding Default.BoolSetting, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
    </Grid>
</Window>

この時点で、Visual Studio は次のエラーを報告しています。「TestSettings」という名前は名前空間「clr-namespace:WpfApplication2」に存在しません。(7行目、49列目)

この部分を に変更しようとしましWindowChild.TestSettingsたが、VS はネストされた型がサポートされていないと文句を言います。

CLR 名前空間を変更しWpfApplication2.WindowChildてもWindowChildうまくいかない、と VS は言う:未定義の CLR 名前空間。「clr-namespace」URI は、見つからなかった名前空間「WindowChild」を参照しています。

ここで何が間違っていますか?

4

1 に答える 1

1

OPから

私は最終的にそれを理解しました:代わりに<Window.Resources>andObjectDataProvider必要なのは<Window.DataContext><src:TestSettings/></Window.DataContext>.

于 2013-09-17T19:00:55.697 に答える