2014-12-01 2 views
1

У меня небольшая проблема с привязкой данных в WPF, надеюсь, вы можете мне помочь.Как связать другой элемент управления с помощью свойства Value Setter с помощью триггера?

Я хочу связать параметр SelectedDate DatePicker с TextBlock, но только при проверке CheckBox. CheckBox и TextBlock находятся в DataView, DatePicker находится снаружи.

В момент, когда я пытаюсь использовать его с триггером, установите привязку в Value-Property в части сеттера.

<TextBlock Text=""> 
    <TextBlock.Style> 
     <Style TargetType="TextBlock"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=IsChecked}" Value="True"> 
        <Setter Property="Text" Value="{Binding ElementName=StandartPitBis, Path=SelectedDate, StringFormat='dd.MM.yyyy'}" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

Но это не будет работать. У меня есть все, что я могу сделать?

Вот код-Parts есть я использую:

Внутри GridView

CheckBox

<GridViewColumn> 
    <GridViewColumn.CellTemplate> 
     <DataTemplate> 
      <CheckBox Content="" x:Name="check_Anlage" IsChecked="{Binding Path=IsChecked}" /> 
     </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 

The TextBlock

<TextBlock Text=""> 
    <TextBlock.Style> 
     <Style TargetType="TextBlock"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=IsChecked}" Value="True"> 
        <Setter Property="Text" Value="{Binding ElementName=StandartPitBis, Path=SelectedDate, StringFormat='dd.MM.yyyy'}" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

Вне GridView

DatePicker

<DatePicker Grid.Column="1" Margin="0,5,0,5" SelectedDate="{x:Static sys:DateTime.Now}" x:Name="StandartPitVon" /> 

Что я хочу сделать, что SelectedDate от DatePicker показан в TextBlock, но только тогда, когда установлен флажок.

Большое спасибо

ответ

2

So. Я нашел проблему. Проблема заключается в том, что, когда свойство задано в объекте Object, оно не может быть переопределенным. Когда вам нужны значения по умолчанию и триггер, вы также должны определить значение по умолчанию в стиле.

Пример:

<TextBlock> 
    <TextBlock.Style> 
     <Style TargetType="TextBlock"> 
      <Setter Property="Text" Value="{x:Null}" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=IsChecked}" Value="True"> 
        <Setter Property="Text" Value="{Binding ElementName=StandartPitVon, Path=SelectedDate, StringFormat='dd.MM.yyyy'}" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

 Смежные вопросы

  • Нет связанных вопросов^_^