簡體   English   中英

從DataGridTextColumn.HeaderTemplate復選框設置DataGridTextColumn IsReadonly屬性

[英]Setting the DataGridTextColumn IsReadonly property from DataGridTextColumn.HeaderTemplate Checkbox

我有WPF DataGrid,在這里顯示一些數據。 如果用戶檢查標題中的復選框,則需要為用戶提供一個編輯數據的選項。 這是我完成的WPF部分。

<DataGrid.Columns>
    <DataGridTextColumn Header="MaxLength" Binding="{Binding MaxLength}">
        <DataGridTextColumn.HeaderTemplate>
            <DataTemplate>
                <CheckBox x:Name="AAOverride" Content="Increase Max Length" />
            </DataTemplate>
        </DataGridTextColumn.HeaderTemplate>
    </DataGridTextColumn>
</DataGrid.Columns>

我想根據用戶選擇啟用/禁用MaxLength列。 我正在關注MVVM,所以我沒有codebehind選項:(

只需綁定到RelativeSource綁定即可進入您的根視圖模型。 我想是這樣的(還需要一個IValueConverter來否定布爾值以“增加最大長度”->“只讀”):

<DataGrid.Columns>
    <DataGridTextColumn Header="MaxLength" Binding="{Binding MaxLength}"
        IsReadOnly="{Binding 
            RelativeSource={RelativeSource AncestorType=DataGrid},
            Path=DataContext.IsMaxLengthEnabled,
            Converter={StaticResource NegateBool}}">
        <DataGridTextColumn.HeaderTemplate>
            <DataTemplate>
                <CheckBox x:Name="AAOverride" Content="Increase Max Length" 
                    IsChecked="{Binding RelativeSource={RelativeSource AncestorType=DataGrid},
                                Path=DataContext.IsMaxLengthEnabled,
                                Mode=TwoWay}"
                 />
            </DataTemplate>
        </DataGridTextColumn.HeaderTemplate>
    </DataGridTextColumn>
</DataGrid.Columns>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM