2017-04-18 6 views
-1

txtMainというテキストボックスの最大長は30です。 15.1つのテキストボックスを2つの半分に分割し、wpf、databinding、pure xamlのみを使用して2つのテキストボックスにデータを入力

txtMainの最初の15文字はtxtName1に、txtMainの次の15文字はtxtName2に取り込まれます。

これは、コードの背後にあるイベントを使用して行うことができますが、この目的でデータバインディング、トリガー、および純粋なXAMLを使用したいと考えています。

答えて

0

と純粋なXAML

ない可能XAMLで直接データ操作を行う能力を持っていないマークアップ言語であるため、背後にあるコードなしのサブストリングとプロセスを抽出します。

は、しかし、私は

がバインドされている3つのプロパティを持っているデータバインディングを使用します。この変更は、メインが変更されたときに発生し、変更を他の2人に通知するだけです。この問題を解決する別の方法は、テキスト情報を分割でき、特定のコンバータを書くことです

private string _main; 

public string MainString 
{ 
    get { return _main; } 
    set { 
      _main = value; 
      OnPropertyChanged("MainString"); 
      OnPropertyChanged("FirstPart"); 
      OnPropertyChanged("SecondPart"); 
     } 
} 

public int Size { get { return MainString?.Count ?? 0; } } 

public string FirstPart { get 
      { return MainString?.Substring(0, Math.Min(15, Size)) ?? string.Empty; } }. 

public string SecondPart 
{ 
    get 
    { 
     if (size > 15) 
      return str.Substring(15, Math.Min(15, (size - 15))).Dump(); 

     return string.Empty; 
    } 
} 

:他の2つはちょうどのような必要な部分文字列をサブストリング。しかし、それもソリューションの背後にあるコードです。

+0

tx OmegaMan.Iはコードの背後にありますが、誰かがより良いアイデアを持っているかもしれないと考えました:-)。つまり、純粋なxamlのみを使用する方法...とにかく、コードだけで対処する必要があります:-)。 –

+0

@JatinderWaliaあなたが答えに満足して問題を解決したら、それを「回答」と記入して、他の人が解決を知るようにしてください。 :-) – OmegaMan

関連する問題