Binding XTextBoxText.TextBoxTextをBinding XTextBoxTextだけにしたいです。
継続の質問なのでコードで。
xaml
1<Window x:Class="LivetWPFApplication1.Views.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 5 xmlns:l="http://schemas.livet-mvvm.net/2011/wpf" 6 xmlns:vm="clr-namespace:LivetWPFApplication1.ViewModels" 7 Title="MainWindow" Height="300" Width="525"> 8 9 <Window.DataContext> 10 <vm:MainWindowViewModel/> 11 </Window.DataContext> 12 13 <i:Interaction.Triggers> 14 <i:EventTrigger EventName="ContentRendered"> 15 <l:LivetCallMethodAction MethodTarget="{Binding}" MethodName="Initialize"/> 16 </i:EventTrigger> 17 18 <l:InteractionMessageTrigger Messenger="{Binding Messenger}" MessageKey="Information"> 19 <l:InformationDialogInteractionMessageAction/> 20 </l:InteractionMessageTrigger> 21 22 <i:EventTrigger EventName="Closed"> 23 <l:DataContextDisposeAction/> 24 </i:EventTrigger> 25 </i:Interaction.Triggers> 26 27 <Grid Margin="10"> 28 <Grid.RowDefinitions> 29 <RowDefinition Height="40"/> 30 <RowDefinition Height="40"/> 31 <RowDefinition Height="40"/> 32 <RowDefinition Height="40"/> 33 <RowDefinition Height="40"/> 34 </Grid.RowDefinitions> 35 <Grid.ColumnDefinitions> 36 <ColumnDefinition Width="150"/> 37 <ColumnDefinition Width="*"/> 38 </Grid.ColumnDefinitions> 39 <Label Grid.Row="0" Grid.Column="0" Content="X" HorizontalAlignment="Left" FontFamily="Meiryo"/> 40 <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding XTextBoxText.TextBoxText}" x:Name="LocationXTextBox" TextWrapping="NoWrap" FontFamily="Meiryo" FontSize="11"/> 41 <Label Grid.Row="1" Grid.Column="0" Content="Y" HorizontalAlignment="Left" FontFamily="Meiryo"/> 42 <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding YTextBoxText.TextBoxText}" x:Name="LocationYTextBox" TextWrapping="NoWrap" FontFamily="Meiryo" FontSize="11"/> 43 44 <Label Grid.Row="2" Grid.Column="0" Content="X2" HorizontalAlignment="Left" FontFamily="Meiryo"/> 45 <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding X2TextBoxText.TextBoxText}" x:Name="LocationX2TextBox" TextWrapping="NoWrap" FontFamily="Meiryo" FontSize="11"/> 46 <Label Grid.Row="3" Grid.Column="0" Content="Y2" HorizontalAlignment="Left" FontFamily="Meiryo"/> 47 <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding Y2TextBoxText.TextBoxText}" x:Name="LocationY2TextBox" TextWrapping="NoWrap" FontFamily="Meiryo" FontSize="11"/> 48 <Grid Grid.Row="4" Grid.Column="1"> 49 <Grid.ColumnDefinitions> 50 <ColumnDefinition Width="*"/> 51 <ColumnDefinition Width="75"/> 52 <ColumnDefinition Width="75"/> 53 </Grid.ColumnDefinitions> 54 <Button Grid.Column="1" Content="OK" Click="OkButtonClick"/> 55 <Button Grid.Column="2" Content="Cancel" Click="CancelButtonClick"/> 56 </Grid> 57 </Grid> 58</Window>
C#
1using Livet; 2 3namespace LivetWPFApplication1.ViewModels 4{ 5 using System.Globalization; 6 7 public class MainWindowViewModel : ViewModel 8 { 9 public void Initialize() 10 { 11 } 12 13 private static int initial = 0; 14 15 public doubleValidation XTextBoxText { get; set; } = new doubleValidation(initial = 0); 16 public doubleValidation X2TextBoxText { get; set; } = new doubleValidation(initial = 0); 17 public doubleValidation YTextBoxText { get; set; } = new doubleValidation(initial = 0); 18 public doubleValidation Y2TextBoxText { get; set; } = new doubleValidation(initial = 0); 19 } 20} 21
C#
1using System.Globalization; 2 3namespace LivetWPFApplication1.ViewModels 4{ 5 using Livet; 6 7 public class doubleValidation : ViewModel 8 { 9 private int v; 10 private double x; 11 12 public doubleValidation(int v) 13 { 14 this.v = v; 15 } 16 17 public string TextBoxText 18 { 19 get 20 { 21 return this.x.ToString(CultureInfo.InvariantCulture); 22 } 23 24 set 25 { 26 if (this.TextBoxText == value) 27 { 28 return; 29 } 30 31 double v; 32 33 try 34 { 35 v = double.Parse(value); 36 } 37 catch 38 { 39 this.RaisePropertyChanged(() => this.TextBoxText); 40 41 return; 42 } 43 44 this.x = v; 45 46 this.RaisePropertyChanged(() => this.TextBoxText); 47 } 48 } 49 } 50}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/14 07:29