0

タブによるデータバインディングについて質問があります。次の xaml コードがあります。

<Window x:Class="SuperAtomsController.GUI.windowAnalog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"          
    Title="windowAnalog" Height="900" Width="1400"
    DataContext="{Binding RelativeSource={RelativeSource self}}">

    <Grid>
        <TabControl Height="459" HorizontalAlignment="Left" Margin="188,278,0,0" Name="tabControl1" ItemsSource="{Binding Path=model.sequences}" VerticalAlignment="Top" Width="883">

        </TabControl>
    </Grid>
</Window>

そして背後にあるコード:

public partial class windowAnalog : Window
{
    public Data model;                           
    public windowAnalog(Data model)
    {
        this.model = model;
        InitializeComponent();                             
    }
}

しかし、これではタブコントロールには何も表示されません (model.sequences は type ですObservableCollection<>)。xaml で itemssource を削除し、C# コードのtabControl1.ItemsSource = model.sequences;後に​​次を追加すると、正常にInitializeComponent();動作します。私は何が欠けていますか?

4

1 に答える 1

0

バインドが解決されていないことは明らかです。デバッグ出力ウィンドウで役立つ診断メッセージを確認してください。

思い出すことはできませんが、WPF プロパティ パスを機能させるには、モデルをフィールドではなくプロパティにする必要があると思います。それ以外の場合は、DataContext に問題がある可能性があります。DataContext xaml の代わりに、InitializeComponent() の前に this.DataContext = this をコンストラクターに実行してみてください。

于 2012-05-15T02:48:24.757 に答える