사용자 정의 확인란 열이 포함 된 Silverlight 프로젝트에서 DataGrid를 사용하고 있습니다. 내 Command
속성을 내 ViewModel 클래스의 속성에 바인딩했습니다.Silverlight에서 바인딩이 올바르게 작동하지 않습니다.
<sdk:DataGrid AutoGenerateColumns="False" Margin="10,0,10,0" Name="dataGridOrders" ItemsSource="{Binding OrderList}" Height="190">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Select">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox>
<is:Interaction.Triggers>
<is:EventTrigger EventName="Checked">
<is:InvokeCommandAction Command="{Binding Source={StaticResource ExecutionTraderHomePageVM},Path=OrderSelectedCommand,Mode=TwoWay}"
CommandParameter="{Binding ElementName=dataGridOrders,Path=SelectedItem}" />
</is:EventTrigger>
<is:EventTrigger EventName="Unchecked">
<is:InvokeCommandAction Command="{Binding Source={StaticResource ExecutionTraderHomePageVM},Path=OrderSelectedCommand,Mode=TwoWay}"
CommandParameter="{Binding ElementName=dataGridOrders,Path=SelectedItem}" />
</is:EventTrigger>
</is:Interaction.Triggers>
</CheckBox>
하지만 난 항상 내 명령의 Execute
의 매개 변수에 null
무엇입니까 : 자, 문제는 내가 다음 코드를 작성한있는 명령 매개 변수를 통해 데이터 그리드의 "선택 항목"을 보낼 것입니다 방법. 나는 Width
, ActualHeight
등등과 같은 DataGrid의 다른 속성으로 시도했지만 아무 쓸모가 없습니다. 내가 여기서 무엇을 놓치고 있니?
같은 EventTrigger를 사용한다고 생각합니다. 확인란을 클릭하면 List(DataGrid SelectedItem을 통해)에 해당 행을 추가합니다. 행이 선택 취소 되어도 행이 목록에서 제거됩니다. 제공 한 솔루션이 정상적으로 작동하고 있습니다. 사실 나는 이전에이 접근법을 생각했습니다. 내가 그것을 사용하지 않은 이유는 내가 생각하기에 : 체크 박스가 하나의 속성에 묶여 있기 때문에 그 중 하나를 체크하면 모든 체크 박스가 자동으로 체크된다. 그러나 이것은 일어나지 않습니다. 이유를 설명해 주시겠습니까? –
@HarshMaurya : 확인란이 단일 속성에 바인딩되는 이유는 무엇입니까? 분명히 그들은'Order' 뷰 - 모델 클래스의 다른 인스턴스에서 같은 속성에 바인딩 될 것입니다. –