テキストボックスがあります
<TextBox Height="23" Grid.Column="1" PreviewTextInput="AddressBox_PreviewTextInput" HorizontalAlignment="Right" Margin="0,27,13,0" Name="AddressI2C" Text="{Binding Path=AddressMessage, Mode=TwoWay}" VerticalAlignment="Top" Width="128" />
private string _AddressMessage = string.Empty;
public string AddressMessage
{
get
{
return _AddressMessage;
}
set
{
_AddressMessage = value;
NotifyPropertyChanged("AddressMessage");
}
}
今、私のビューModelクラスには、このテキストボックスに保存されているテキストを取得してint変数に保存する必要があるメソッドがあります。これがトリックです。この変数内の16 進数値のみを保存する必要があります。
デモンストレーション:
テキストボックスの値: 0x18
したがって、まずテキストボックス内のテキストを取得し、変数 int 内に 16 進数値のみを格納する必要があります。基本的に、整数変数内には 18 のみを格納します。
次のように、C++ アプリケーションでこれを行いました。
int address = m_texteditAddress->getText().getHexValue32();
私は次のことを試しました:
string strValue = AddressMessage;
if(strValue.StartsWith("0x"))
{
strValue = strValue.Remove(0,2);
int address = Convert.ToInt32(strValue);
}
しかし、コードをデバッグするときに「0x23」と入力しても、AddressMessage は常に空です。コントロールはループに入りません。どうすればこれを達成できますか????