WPF-如何在 DataTemplate 中绑定项目?

发布于 2024-10-09 01:00:12 字数 1283 浏览 1 评论 0原文

我遇到了一点问题。我创建了一个 DataTemplate 并将其放入 App.xaml 中,我想使用它来设置我拥有的十几个 ListView 中的复选框的样式。每个特定的 ListView 至少有一列带有布尔值。

这是我制作的 DataTemplate:

<DataTemplate x:Key="checkBoxDataTemplate">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}" IsChecked="{WhatDoIPutHere?}" />
    </Grid>
</DataTemplate>

我正在尝试用它来替换它:

<GridViewColumn Header="Discovery Date">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}" IsChecked="{Binding CaseProperty.DiscoveryDate, Mode=OneWay, Converter={StaticResource booleanConverter},ConverterParameter='datetime'}" />
         </DataTemplate>
     </GridViewColumn.CellTemplate>
</GridViewColumn>

如您所见,我将 IsChecked 绑定到附加到我的 ListView 的对象的特定属性。如果我用我的模板替换它,如何绑定到 DataTemplate 中 CheckBox 的 IsChecked 属性?

预先感谢,
桑尼

I've run into a bit of a problem. I've created a DataTemplate and put it into App.xaml and I'd like to use it to style my CheckBoxes within a dozen or so ListViews I have. The particular ListViews each have at least one column with a bool value.

Here's the DataTemplate I made:

<DataTemplate x:Key="checkBoxDataTemplate">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}" IsChecked="{WhatDoIPutHere?}" />
    </Grid>
</DataTemplate>

And I'm trying to use it to replace this:

<GridViewColumn Header="Discovery Date">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}" IsChecked="{Binding CaseProperty.DiscoveryDate, Mode=OneWay, Converter={StaticResource booleanConverter},ConverterParameter='datetime'}" />
         </DataTemplate>
     </GridViewColumn.CellTemplate>
</GridViewColumn>

As you can see, I have IsChecked bound to a specific property of an object attached to my ListView. If I replace it with my template, how do I bind to the IsChecked property of CheckBox in the DataTemplate?

Thanks in advance,
Sonny

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

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

发布评论

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

评论(2

微暖i 2024-10-16 01:00:12

您可以尝试以下方式:

<CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}"
          IsChecked="{Binding}" />

然后设置适当的DataContext

You can try this way:

<CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}"
          IsChecked="{Binding}" />

and then set the appropriate DataContext.

池予 2024-10-16 01:00:12

从那以后我就放弃了这种方法。我不认为 DataTemplates 被设计成以这种方式工作......哦好吧......

I've since abandoned this approach. I don't think DataTemplates are designed to work in this way... oh well...

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