我有以下問題:我需要在下面的代碼中添加什麼來告訴我的RadioButton綁定到連接到datagrid項目的「IsFacturation」布爾值?我使用DataTrigger來定義自己綁定到datagrid只讀狀態,所以我需要通過查看合適的父級來「綁定」綁定定義。我認爲我必須玩RelativeSource ...WPF控件綁定到DataTrigger之前的綁定之前的綁定
我注意到,當一個數據網格項目的IsFacturation布爾值設置爲true時,單選按鈕不會按原樣檢查。
DataGrid項目是「Adresse」對象的可觀察集合,它定義了「IsFacturation」屬性。
<DataGrid x:Name="AddressGrid" SelectionUnit="Cell" ItemsSource="{Binding Path=Adresses}" SelectionMode="Single">
<DataGrid.Columns>
<!-- Region Facturation -->
<DataGridTemplateColumn Header="Facturation" SortMemberPath="IsFacturation" HeaderStyle="{StaticResource CenterAlignmentColumnHeaderStyle}" >
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=AddressGrid,Path=IsReadOnly}" Value="True">
<Setter Property="ContentTemplate">
<Setter.Value>
<!-- Possibly create another contentcontrol which differentiates between errors -->
<DataTemplate>
<Image Source="Resources/Images/Check-icon.png" Visibility="Visible"/>
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=AddressGrid,Path=IsReadOnly}" Value="False">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<RadioButton GroupName="grpRadioButtonFacturationAddresses"
IsChecked="{Binding Path=IsFacturation, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="Visible"/>
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
這樣的代碼的目標是當數據網格爲只讀以顯示圖像,而當它不是一個單選按鈕。我仍然需要處理圖像可見性(簡單),但單選按鈕狀態直接鏈接到我選擇的datagrid項目屬性。
非常感謝
嘗試'「{綁定路徑= IsFacturation,UpdateSourceTrigger =的PropertyChanged,模式=雙向}」'而不是如果您希望值立即更新。您在列中使用「ContentControl」的目的是什麼?除了浪費資源外,它什麼都不做 – Sheridan
所以我有不必要的代碼來使用我的兩個數據觸發器?什麼是相關的代碼來實現相同的行爲?感謝您指出這一點。對不起,它不適用於'UpdateSourceTrigger = PropertyChanged',這很奇怪。 –