5

WPF グリッドビューに 2 つのテキスト ボックスがあります。2 つ目は、表示するテキストがない場合、ビュー モデル (GetNoteTwoVisibility) のメソッドを使用して非表示にされます。問題ありません。この場合、最初のテキスト ボックスの列スパンを両方の列を使用するように変更したいと思います。「GetNoteOneColumnSpan」メソッド (int を返す) を追加しようとしましたが、うまくいきません。

<TextBox Name="Note1" Grid.Column="0" Text="{Binding NotesView.NoteOne}" Grid.ColumnSpan="{Binding NotesView.GetNoteColumnSpan}" />
<TextBox Name="Note2" Grid.Column="1" Text="{Binding NotesView.NoteTwo}" Visibility="{Binding NotesView.GetNoteTwoVisibility}" />

これを行う方法はありますか?ありがとう

4

1 に答える 1

8

の別のバインディング プロパティは必要ありませんGrid.ColumnSpan。次のようなものを試すことができます:

<TextBox Name="Note1"
          Grid.Column="0"
          Text="{Binding NotesView.NoteOne}">
  <TextBox.Style>
    <Style TargetType="{x:Type TextBox}">
      <Setter Property="Grid.ColumnSpan"
              Value="1" />
      <Style.Triggers>
        <DataTrigger Binding="{Binding NotesView.GetNoteTwoVisibility}"
                      Value="False">
          <Setter Property="Grid.ColumnSpan"
                  Value="2" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </TextBox.Style>
</TextBox>
<TextBox Name="Note2"
          Grid.Column="1"
          Text="{Binding NotesView.NoteTwo}"
          Visibility="{Binding NotesView.GetNoteTwoVisibility}" />
于 2013-04-12T12:13:09.443 に答える