こんにちは私は、MVVMを介して観測可能なコレクションにバインドされたRadGridViewを持っていて、グリッドのSelectedItem
プロパティもモデル内のプロパティにバインドされています。選択したアイテムを開くためにバインドされたボタン列があり、選択したアイテムの詳細を表示します。このコードは以下のとおりです。私はちょうど行最初SelectedItem
プロパティが設定されていないにクリックせずに、行のボタンをクリックして、そのコマンドがない場合、私はしかし、その後、ボタンをクリックした行にクリックしたときにTelerik RadGridViewがDataGridのボタンをクリックしたときにアイテムバインディングが機能しない
<telerik:RadGridView Name="RadGridView"
Height="900"
AutoGenerateColumns="False"
CanUserSortColumns="True"
IsReadOnly="True"
ItemsSource="{Binding Model.Items}"
SelectedItem="{Binding Model.SelectedItem,Mode=TwoWay}"
Width="990">
<telerik:RadGridView.Columns>
<telerik:GridViewColumn Header="Open Item" >
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Open"
Command="{Binding Path=DataContext.OpenItemBySelectedItemCommand,
RelativeSource= {RelativeSource FindAncestor,
AncestorType={x:Type telerik:RadGridView}}}">
</Button>
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>
<telerik:GridViewDataColumn DataMemberBinding="{Binding DateScanned}" Header="Date Scanned" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Amount}" Header="Amount" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Description}" Header="Description" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding IsRefund}" Header="Is Refund" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
は今、このコードは正常に動作します期待どおり機能しません。
私は行のボタンをクリックすると自動的にその行を選択すると思ったが、明らかにそうではないと思った。誰もボタンをクリックする前に行をクリックすることなく、特定の行のボタンをクリックするだけで、SelectedItem
プロパティを設定する方法を知っていますか?
ここをクリックしてください:https://stackoverflow.com/questions/1168976/wpf-datagrid-button-in-a-column-getting-the-row-from-which-it-came-on-the- clx –
そのリンクのMVVMソリューションは、私のコマンドのバインディングを壊しているように見えますが、うまくいきません。ありがとう – philmckendry