0
내 창에서 일련의 동적 계산 필드를 만들려고합니다.WPF에서 동적 계산 필드 만들기
은 지금은 여기
<Window.Resources>
<src:PaymentVarianceConverter x:Key="PaymentConverter" />
</Window.Resources>
<TextBlock Text="{Binding Path=., Converter={StaticResource PaymentConverter},
ConverterParameter=CASH, StringFormat={}{0:C}, Mode=OneWay}"/>
<TextBlock Text="{Binding Path=., Converter={StaticResource PaymentConverter},
ConverterParameter=CHECK, StringFormat={}{0:C}, Mode=OneWay}"/>
는 변환기입니다 ... 폼이로드는 다음과 같이 때 작업이 :
public sealed class PaymentVarianceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is Route))
return null;
var route = value as Route;
switch (parameter.ToString())
{
case "CASH":
return route.CashTotal - route.TotalExpectedCash;
case "CHECK":
return route.CheckTotal - route.TotalExpectedCheck;
default:
return null;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException("ConvertBack Not implemented");
}
}
모든이 때 새로 고쳐지지 않습니다 제외하고 이것이 잘 작동 기본 값 (예 : route.CashTotal)이 변경됩니다.
동적으로 새로 고칠 수있는 방법이 있습니까? 나는 그들에게 많은 것들이 있기 때문에 나는 그것들을 내 소스 객체에 등록하지 않고 OnPropertyChanged()를 호출하는 것을 피하고 싶다.
빠른 응답 감사합니다. 저는 WPF에 익숙하지 않습니다. Win Forms 세계에서 왔습니다. 창에있는 다른 TextBoxes의 계산에 TextBox의 텍스트 속성을 바인딩하는 방법이 있는지 확실하지 않았습니다. –
@GabrielMontanaro : 'TextBox.Text' 속성이 바인딩 프레임 워크와 상호 작용하고 변경 될 때 알림을 보내는 종속성 속성이기 때문에 컨트롤간에 데이터 바인딩을 만들 수 있습니다. 그러나, 당신은 DataContext'에 직접 바인딩하는 것처럼 보입니다. 그러면 데이터 바인딩 프레임 워크에 변경 사항을 알리는 방법을 구현해야합니다. –