0

text boxにある数値 (正と負) を含む変数に をバインドしViewModelます。

変数が変更されると、 にある列のサイズtext boxも変更されます (列のサイズは定義されていません)。

テキストボックス内のテキストに続いて列が変更されなかったことをどのように確認できますか(回答が欲しいと知っている人がいる場合、なぜこれが起こるのかはまったく明らかではありません)

いくつかのコード:

xaml:

    <Grid Grid.Row="3" Grid.RowSpan="1" Margin="0" >
        <Grid.RowDefinitions>
            <RowDefinition Height="25" />
            <RowDefinition Height="25" />
            <RowDefinition Height="25" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="25" />
            <ColumnDefinition />
            <ColumnDefinition Width="50" />
        </Grid.ColumnDefinitions>
         SOME ELEMENT
        <TextBox IsReadOnly="True" Margin="3,2,0,2" Name="xName" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" HorizontalContentAlignment="Right" Text="{Binding VM.SomeProp}"/>//THE PROPBLEM TEXTBOX
        <TextBlock Grid.Row="2" Grid.Column="2" Margin="3,2" Name="txtblockname" Text="txt" />
    </Grid>

ここに私の小道具

    private float _someProp;
    public float SomeProp
    {
        get { return _someProp; }
        set
        {
            if (_someProp!= value)
            {
                _someProp= value;
                NotifyPropertyChanged("SomeProp");
            }
        }
    }

問題は、数値が負の場合にのみサイズが変更されることです。なぜこれが起こっているのでしょうか?

4

1 に答える 1

1

グリッド列の幅を設定しました。このサイズは尊重されますが、コンテンツのサイズは変更される可能性があります。

テキストボックスのサイズを変更したくない場合は、そのWidthプロパティを設定する必要があります。

サイズを変更したいが、いくつかの境界内にとどまる必要がある場合は、 Min- and MaxWidthプロパティを使用できます。

textbox を伸ばすことも選択できます。HorizontalAlignment="Stretch"これにより、列内のすべてのスペースを強制的に占有します。

于 2013-02-26T08:02:25.567 に答える