0

非常に単純なケースであるはずの DesignData に苦労しています。Windows ユニバーサル プロジェクトで次の簡単なコントロールを定義しました。

<UserControl
...
xmlns:local="clr-namespace:SimpleDataBind"
...
<UserControl.Resources>
    <DataTemplate x:Key="SimpleListTemplate">
        <TextBox Text="{Binding Name}"  />
    </DataTemplate>
</UserControl.Resources>
<Grid>
    <StackPanel Grid.Row="0" d:DataContext="{d:DesignData Source=./DesignData/Single.xaml}">
        <TextBox Text="{Binding Name}"/>
    </StackPanel>
    <ListView Grid.Row="1" d:DataContext="{d:DesignData Source=./DesignData/Multiple.xaml}"
         ItemTemplate="{StaticResource SimpleListTemplate}"
         ItemsSource="{Binding collection}">
    </ListView>
</Grid>

クラスは次のように定義されています。

public class Element
{
    public Element() { }
    public string Name { get; set; }
}
public class ElementCollection : ObservableCollection<Element>
{
    public ElementCollection() { }
}

型 ElementCollection の要素「コレクション」が codeBehind で定義され、有効なバインディング ソースが提供されます。

Single.xaml は簡単​​です:

 <local:Element xmlns:local="clr-namespace:SimpleDataBind" Name="Single" />

複数も同様です。

<local:ElementCollection xmlns:local="clr-namespace:SimpleDataBind" >
    <local:Element Name="Multiple Pete" />
    <local:Element Name="Multiple George" />
    <local:Element Name="Multiple John" />
</local:ElementCollection>

Designer で表示すると、上記の設計データが表示されます。実際、コントロールは、グリッドの最初の行に名前として「Single」を正しく表示します。ただし、コントロールはグリッドの 2 行目に何も表示しません。

明らかな何かが明らかに欠けています...

4

1 に答える 1