Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 包含来自绑定的内容的网格_Wpf_Xaml - Fatal编程技术网

Wpf 包含来自绑定的内容的网格

Wpf 包含来自绑定的内容的网格,wpf,xaml,Wpf,Xaml,我有一个基于输入参数生成网格的库。网格可能包含基于输入的不同控件。我想创建一个列表框,其中每个列表项将获得自己生成的网格。这可行吗?我找不到任何显示内容属性(例如Button)的派生面板(网格、StackPanel等)。如何传递数据以构建网格 我假设您有一个控件,该控件通过依赖项属性接收数据。例如,您有类似MyControl.MyData属性的内容,其中MyData是一个依赖属性。在这种情况下,请尝试使用DataTemplate 创建一个ObservableCollection,其中每个项目都是

我有一个基于输入参数生成网格的库。网格可能包含基于输入的不同控件。我想创建一个列表框,其中每个列表项将获得自己生成的网格。这可行吗?我找不到任何显示内容属性(例如Button)的派生面板(网格、StackPanel等)。

如何传递数据以构建网格

我假设您有一个控件,该控件通过依赖项属性接收数据。例如,您有类似MyControl.MyData属性的内容,其中MyData是一个依赖属性。在这种情况下,请尝试使用DataTemplate

创建一个ObservableCollection,其中每个项目都是构建网格所需传递的数据

在ListBox的实例上,定义ItemTemplate以使用由控件组成的DataTemplate

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <myAssembly:MyControl MyData="{Binding }"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

@XAMeLi的答案几乎是正确的——更好的办法是,每个数据项都可以有不同的模板(或生成的网格)。在扩展了
DataTemplateSelector
的类中,您可以轻松地将适当的网格布局作为单独的控件或动态DataTemplate生成或加载

请参阅本文,以获得一个好的示例: