データベースから各アイテムのカードを生成します。 編集機能を追加します。ですから、TextBlockをダブルクリックするとTextBoxに変わり、同じ内容になります。今までダブルクリックでTextBoxを生成してTextBlockを生成します
私のコードは次のとおりです。
private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2)
{
string test = (sender as TextBlock).Text;
(sender as TextBlock).Visibility = Visibility.Hidden;
TextBox descContentBox = new TextBox();
descContentBox.TextWrapping = TextWrapping.Wrap;
descContentBox.Text = test;
descContentBox.Opacity = .68;
}
}
しかし、私は、これは動作しませんね。 Imは別の機能でTextBlockなどを生成するためです。
私の2回目の試行は、次のとおりです。その後、
private void LoadRoles()
[...]
TextBlock descContent = new TextBlock();
descContent.Opacity = .68;
descContent.TextWrapping = TextWrapping.Wrap;
descContent.Text = reader[2].ToString();
TextBox descContentBox = new TextBox();
descContentBox.TextWrapping = TextWrapping.Wrap;
descContentBox.Text = descContent.Text;
descContentBox.Opacity = .68;
descContentBox.Visibility = Visibility.Hidden;
とのMouseDownイベントでの可視性を変更します。しかし、私はdescContentBoxを検出する方法を知らないという問題があります。私はdescContentを(TextBlockとしての送信者)で検出します。しかし、どのように生成された隠しdescContentBoxを検出するには?
したがって、別の解決策が必要です。何か案は ?
あなたは新しい 'TextBox'を作成していますが、これをあなたの「ホルダー」(親コントロール)には付けていません。 –
私の所有者(生成されたStackPanel)がLoadRolesメソッドで定義されているためです。だから私はMouseDownイベントからそれにアクセスすることはできません。 –