2017-04-24 15 views
0

私は今、時間これにしてきたと私は働いていないか、それがどのように働いているものを得ていないのです内部の作業ではありません。説明のビットは、これがどのようにふるまうかを理解するでしょう。WPF:バインディングContentControlに

私は別のセルの内容に基づいてトリガを追加しようとしていると私は結合部分を忘れてしまった場合、それが正常に動作しています。

私の問題は、実際にバインディングそのものです。それがContentControlの内部にある場合、それは単に機能しません。

マイコード:

<GridViewColumn.CellTemplate> 
    <DataTemplate> 
     <ContentControl> 
      <ContentControl.Style> 
       <Style TargetType="{x:Type ContentControl}"> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding CBW_Type}" Value="Text"> 
          <Setter Property="ContentTemplate"> 
           <Setter.Value> 
            <DataTemplate> 
             <TextBlock Text="{Binding Path=CBW_Content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /> 
            </DataTemplate> 
           </Setter.Value> 
          </Setter> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </ContentControl.Style> 
     </ContentControl> 
    </DataTemplate> 
</GridViewColumn.CellTemplate> 

が、私は以下しようとした(トリガなし)期待通りに動作します。データはちょうど良い場所に入る。

<GridViewColumn.CellTemplate> 
    <DataTemplate> 
      <TextBlock Text="{Binding Path=CBW_Content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /> 
    </DataTemplate> 
</GridViewColumn.CellTemplate> 

は、私はかなりの数の多くを検索UpdateSourceTrigger =にPropertyChangedでこれを解決したが、それは私のために動作しませんでした。私はContentControlに内部の結合を埋め込む一度

誰もが動作していないものを伝えることができますか?

よろしく、

+0

答えが見つかりました。 ContentControlが空でないように、 ''を追加する必要がありました。誰かがそれに光を当てることができれば、私はそれを感謝します。 –

答えて

0

ContentTemplateContent、無Content =>ContentTemplate cluelessための別のテンプレートを提供することです。だから、あなたもContentContentTemplateを交換し、元のコードでは、このようなDataTemplateを削除することができます

  <Setter Property="Content"> 
       <Setter.Value> 
        <TextBlock Text="{Binding Path=CBW_Content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /> 
       </Setter.Value> 
      </Setter> 
1

ただ答えを見つけました。 ContentControlが空でないように追加する必要がありました。誰かがそれに光を当てることができれば、私はそれを感謝します。

ContentControlContentTemplateDataContextContentControlContentあります。だからあなたは仕事にCBW_Contentプロパティに結合するために、あなたはCBW_Contentプロパティが定義されているオブジェクトのインスタンスにContentControlContentプロパティを設定またはバインドする必要があります。この場合

これはDataGridItemsSourceコレクション内の対応するオブジェクトです。そのため、<ContentControl Content="{Binding}">が機能します。

Contentプロパティを設定したりバインドしたりしないと、バインドするものがないため、DataTriggerが機能しませんでした。

希望があります。

関連する問題