在组成列表框项目的两个控件之间均匀分割宽度?

发布于 2024-07-29 02:42:58 字数 863 浏览 2 评论 0原文

我正在尝试设置一个列表框,以便每个项目都有一个文本块和一个组合框,在列表框的宽度上均匀分割,但我似乎找不到 ColumnDefinition 属性的神奇组合来做到这一点。 这是我的列表框项目的数据模板。 无论如何,我已经把它清理干净了,因为它是错误的。

        <DataTemplate x:Key="MyDataTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding XPath=text()}"/>
                <ComboBox Grid.Column="1" SelectedIndex="0" ItemsSource="{Binding Source={StaticResource Names}, XPath=Name}"></ComboBox>
            </Grid>
        </DataTemplate>

我测试了一个在窗口上带有网格的简单应用程序。 只需指定两个 ColumnDefinition 即可使它们自动占据宽度的一半,这很好,但是在列表框项数据模板中执行相同操作时,行为是不同的。

我将如何更改数据模板以使其正常工作?

谢谢!

I'm trying to setup a ListBox so that every item has a textblock and a combobox, split evenly across the width of the listbox but I can't seem to find the magic combination of ColumnDefinition properties to do it. Here's my DataTemplate for the listbox item. I've cleaned it up since it was wrong, anyhow.

        <DataTemplate x:Key="MyDataTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding XPath=text()}"/>
                <ComboBox Grid.Column="1" SelectedIndex="0" ItemsSource="{Binding Source={StaticResource Names}, XPath=Name}"></ComboBox>
            </Grid>
        </DataTemplate>

I've tested a simple application with a grid on a window. Simply specifying two ColumnDefinitions make them automatically take up half of the width, which is nice, but when doing the same in a listboxitem datatemplate, the behavior is different.

How would I change the datatemplate to make it work?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放低过去 2024-08-05 02:42:58

ListBox 的默认 Horizo​​ntalContentAlignment 为 Left。 您需要将其设置为 Stretch 以使 ListBoxItems 占据整个宽度。

以下是有关 ListBox/ListBoxItem 样式和模板的更多信息:http: //msdn.microsoft.com/en-us/library/cc278062(VS.95).aspx

The default HorizontalContentAlignment for a ListBox is Left. You need to set it to Stretch for the ListBoxItems to take up the entire width.

Here's some more info on ListBox/ListBoxItem styles and templates: http://msdn.microsoft.com/en-us/library/cc278062(VS.95).aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文