0

を使用して WPF ビューを作成していDataGridます。

はのフィールドにDataGridバインドされています。PropertiesViewModel

ただし、列の 1 つについては、各行に同じ値を View モデルの他のプロパティにバインドさせたいと考えています。

具体的には、テーブルには名前付きの通貨値が表示され、繰り返される列には通貨コードが表示されます (これは各行で同じです)。

これを行う方法がわかりません。次を使用しようとしました。

  <DataGrid ItemsSource="{Binding Properties}">
    <DataGrid.Columns>
      <DataGridTextColumn Header="Target" Binding="{Binding Target}"/>
      <DataGridTextColumn Header="Value" Binding="{Binding Value}"/>
      <DataGridTemplateColumn Header="Currency">
        <DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
            <TextBlock Text="{Binding Properties.NodeCurrency}"/>
          </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
      </DataGridTemplateColumn>
    </DataGrid.Columns>
  </DataGrid>

DataContextビューに入力せずにCaliburnフレームワークを使用しています。ただし、これが質問に関係するかどうかはわかりません。

4

3 に答える 3

1

Binding の RelativeSource を介して試すことができます。例えば:

<TextBlock Text="{Binding Property.NodeCurrency, RelativeSource={RelativeSource  AncestorType=Window}}"/>
于 2013-01-15T09:24:45.403 に答える
1

バインディングで RelativeSource/FindAncestor を使用して、現在の DataContext 以外の DataContext にバインドできます。

<TextBlock
   Text="{Binding Property.NodeCurrency, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"/>
于 2013-01-15T09:25:04.263 に答える
0

両方の回答者の助けを借りて、私が必要とした実際のバインディングは次のとおりです。

<TextBlock Text="{Binding DataContext.Property.NodeCurrency, RelativeSource={RelativeSource AncestorType=UserControl}}"/>

欠けていたビットは、私が の にバインドしていることを指定してから、 のプロパティを掘り下げることDataContextでした。UserControlViewModel

于 2013-01-15T09:48:44.097 に答える