लोड अलग-अलग डेटा टेम्पलेट में WPF datagrid स्तंभ

0

सवाल

यह संभव लोड करने के लिए एक अलग-अलग डेटा टेम्पलेट के लिए एक निर्धारित कॉलम में एक WPF डेटा ग्रिड?

मेरे XAML इस तरह दिखता है:

<DataGridTemplateColumn Header="Select">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <CheckBox 
                  HorizontalContentAlignment="Center"
                  Visibility="{Binding IsStarted}"
                  VerticalAlignment="Center"
                  IsChecked="{Binding IsStarted, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                  Command="{Binding DataContext.Checked,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
                  CommandParameter="{Binding}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>

लक्ष्य यहाँ है एक अलग-अलग डेटा टेम्पलेट है जब बाइंडिंग IsStarted गलत पर सेट है, दूसरे शब्दों में, जब दृश्यता गलत पर सेट है.

इरादा उद्देश्य यहाँ है जब एक निश्चित बटन शुरू हो रहा है की स्थापना की जाएगी जो बूलियन करने के लिए "झूठे" एक और डेटा टेम्पलेट पर दिखाई जाएगी यह बहुत ही स्तंभ के बजाय वर्तमान में मौजूदा आइटम नहीं है.

एक उदाहरण के रूप में, निम्नलिखित XAML प्रदर्शित किया जाना चाहिए एक बार बूलियन गलत पर सेट है के निष्पादन के बाद,बटन

<TextBlock Visibility="{Binding IsTrue}" Text="Hello" />

यह संभव है?

binding datagrid wpf xaml
2021-11-22 07:13:27
1

सबसे अच्छा जवाब

1

आप की जगह ले सकता है CheckBox में DataTemplate के साथ एक ContentControl और एक का उपयोग करें Style के साथ एक DataTrigger को बदलने के लिए अपनी ContentTemplate के मूल्य के आधार पर की IsStarted पैरामीटर:

<DataGridTemplateColumn Header="Select">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding}">
                <ContentControl.Style>
                    <Style TargetType="ContentControl">
                        <Setter Property="ContentTemplate">
                            <Setter.Value>
                                <DataTemplate>
                                    <CheckBox 
                                        HorizontalContentAlignment="Center"
                                        Visibility="{Binding IsStarted}"
                                        VerticalAlignment="Center"
                                        IsChecked="{Binding IsStarted, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                        Command="{Binding DataContext.Checked,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
                                        CommandParameter="{Binding}"/>
                                </DataTemplate>
                            </Setter.Value>
                        </Setter>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding IsStarted}" Value="False">
                                <Setter Property="ContentTemplate">
                                    <Setter.Value>
                                        <DataTemplate>
                                            <TextBlock Text="Some other template" />
                                        </DataTemplate>
                                    </Setter.Value>
                                </Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ContentControl.Style>
            </ContentControl>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
2021-11-22 15:27:33

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................