2011-03-29 243 views
4

我是WPF的初學者。 我想在數據綁定值等於Null時將可見性設置爲隱藏在Radibutton上。 我正在使用WPF工具包。 這是我的代碼,但它不工作:WPF Datatrigger可見性+空值

<dg:DataGrid x:Name="dtGrdData" HorizontalScrollBarVisibility="Hidden" SelectionMode="Extended" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False" CanUserSortColumns="False" AutoGenerateColumns="False" 
       RowHeaderWidth="0" RowHeight="50" > 
     <DataTrigger Binding="{Binding P_DAY_PRICE}" Value="{x:Null}"> 
      <Setter Property="RadioButton.Visibility" Value="Hidden"></Setter> 
     </DataTrigger> 
     <dg:DataGrid.Columns> 
      <dg:DataGridTemplateColumn Header="1 day" Width="1.5*" > 
       <dg:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <RadioButton x:Name="rdBtnDayPrice" GroupName="grpNmPrice" Content="{Binding Path=P_DAY_PRICE}" Style="{StaticResource toggleStyle}" Checked="RadioButton_Checked"></RadioButton> 
        </DataTemplate> 
       </dg:DataGridTemplateColumn.CellTemplate> 
      </dg:DataGridTemplateColumn> 
     </dg:DataGrid.Columns> 
    </dg:DataGrid> 

你能幫助我嗎? 謝謝

+0

會發生什麼?什麼是P_DAY_PRICE? P_DAY_PRICE是DG數據上下文的成員嗎?你不給我們足夠的信息來幫助你。 – CodingGorilla 2011-03-29 15:00:13

+0

P_DAY_PRICE是我的數據表中的一個字段。我用storedProcedure的結果填充了dtGrdData.ItemsSource – Cyril 2011-03-29 15:04:41

+2

數據觸發器將使用當前的'DataContext'而不是'ItemsSource'中的數據。您可能需要正確配置網格的DataContext。 – CodingGorilla 2011-03-29 15:07:00

回答

10

將您DataTrigger接近你的RadionButton

<RadioButton ...> 
    <RadioButton.Style> 
     <Style TargetType="RadioButton"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding P_DAY_PRICE}" Value="{x:Null}"> 
        <Setter Property="Visibility" Value="Hidden"></Setter> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </RadioButton.Style> 
</RadioButton> 
+0

這是工作,謝謝:) – Cyril 2011-03-29 15:56:41

3

我建議你直接在RadioButton上設置綁定,並使用Binding對象的'TargetNullValue'屬性。

<RadioButton x:Name="rdBtnDayPrice" Visibility={Binding Path=P_DAY_PRICE, TargetNullValue=Hidden, Converter=...} GroupName="grpNmPrice" Content="{Binding Path=P_DAY_PRICE}" Style="{StaticResource toggleStyle}" Checked="RadioButton_Checked" 

您將需要一個轉換器,以「P_DAY_PRICE」值轉換爲能見度枚舉值和應該做的工作。

Riana