1

私はWPF DataGridを持っています。1つの列に編集ボタンが含まれているため、たとえばデータグリッドのいくつかのボタンをプログラム的に有効または無効にする方法

 <DataGrid AutoGenerateColumns="True" Height="80" Margin="2,-4,8,0" Name="grdQHDRShowAll" VerticalAlignment="Top" ItemsSource="{Binding}" IsReadOnly="True" SelectionChanged="grdQHDRShowAll_SelectionChanged">
                                        <DataGrid.Columns>

                                            <DataGridTemplateColumn>
                                                <DataGridTemplateColumn.CellTemplate>
                                                    <DataTemplate>
                                                        <Button Click="Qhdr_CreateOrder_Click"  CommandParameter="{Binding Path=QuoteNo}" >Create Order</Button>
                                                    </DataTemplate>
                                                </DataGridTemplateColumn.CellTemplate>
                                            </DataGridTemplateColumn>
                                        </DataGrid.Columns>
                                    </DataGrid>

上記のコードにはボタンのある列があるので、行のいくつかのボタンを無効にする方法を知りたいのですが、2番目の列のtrueとfalseの値のような他の列のデータに依存します。2番目の列の最初の行にデータがある場合、最初の列の最初の行ボタンは有効にする手段は、データグリッドのボタンを有効/無効にする方法を他の列の列に依存しますか?

4

2 に答える 2

1

MVVM パターンを使用している場合は、ボタンの IsEnabled プロパティを VM のブール プロパティにバインドするか、コンバーターを使用してブール型に変換できます。

<Button IsEnabled="{Binding Path=BoolProp}"/>

そうでない場合は、elementbinding を使用して要素にバインドできます。

<Button IsEnabled="{Binding ElementName=CellName, Path=BoolProp}"/>
于 2012-09-27T11:06:00.170 に答える
0
  <Button Content="Approve" VerticalAlignment="Center" Height="23" Width="90" FontWeight="Bold" Command="{Binding ApprovedCommand}" Margin="5,0,0,0" IsEnabled="{Binding IsEnabled,Mode=TwoWay}"/>

MVVM では、プロパティを作成し、条件に応じて IsEnabled を true または false にします。

于 2012-09-27T11:25:00.177 に答える