我有一個綁定到滑塊的文本框。滑塊不會更新到最大值
<TextBox Text="{Binding ElementName=maxValue, Path=Value, UpdateSourceTrigger=LostFocus}" TextAlignment="Center" VerticalContentAlignment="Center" Width="30" Height="25" BorderBrush="Transparent" PreviewKeyDown="TextBox_PreviewKeyDown"></TextBox>
<Slider Value="{Binding TotalSize}" Maximum="{Binding MaxMaxBackupSize, Mode=TwoWay}" Minimum="{Binding MinBackupSize}" TickPlacement="BottomRight" TickFrequency="2" IsSnapToTickEnabled="True" Name="maxValue"></Slider>
後用戶選擇的東西,我重新計算最大(MaxMaxBackupSize),因爲它是綁定的屬性,這應該更新文本框和滑塊,但是,出於某種原因 - 只有文本框的值被改變,如果它高於最大值,則降至最大值。然而,滑塊似乎保持原樣,我仍然可以移動它,因爲我想(這也改變文本框中的文字...
我有以下相關屬性:
private int totalSize;
public int TotalSize
{
get { return totalSize; }
set
{
if (value == totalSize)
return;
totalSize = value;
ConfigChanged = true;
ChangeIni = true;
}
}
public static int MaxMaxBackupSize { get; set; }
public static int MinBackupSize { get; set; }
的更改用戶按下後,正在取得一個槓桿是:
...
MaxMaxBackupSize = Convert.ToInt16(f/1000000000)
TotalSize = (TotalSize < MaxMaxBackupSize) ? TotalSize : MaxMaxBackupSize;
...
UPDATE0:(順便說一句,我使用的是被稱爲Fody.OnPropertyChanged一個NuGet包,節省了我需要提高onpropertychanged - 所以這是不是這個原因)
更新:我應該清楚我在說什麼時,我的意思是滑塊不會改變 - 滑塊不會改變,但滑塊的最大值保持舊的最大值。假設在最大值是50之前,現在是20,如果滑塊之前是30,那麼它將移動到20,但是我仍然可以將它移動到50。我希望最大值被限制在20不確定是否可能。
UPDATE2:現在我找到了一個解決方法,來檢查值大於該屬性的最大做大,如果是的話它會彈出一個消息框,說這是不可能的,並返回。
請提供一個最小的回購,當你問一個問題上的SO:https://stackoverflow.com/help/mcve – mm8
缺少什麼?也許只是在用戶選擇一些東西之後所做的更改......我會添加它。 –
@Sameed閱讀文章 - 我使用了一個特殊的包,它爲我實現它,它的工作原理非常完美。這不是問題。 –