这是文本框的示例: 所以我想设置我的对象的最大时间..当我点击列表框中的某些内容时,文本框变得可见。
<TextBox Height="23" Visibility="{Binding Path=Visible, Converter={StaticResource boolToVis},UpdateSourceTrigger=PropertyChanged}" Text="{Binding Path=MaxTime,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" HorizontalAlignment="Left" Margin="376,322,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />
这是我的列表框:
<ListBox SelectedItem="{Binding Path=SelectedQuestionDropList, UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
DisplayMemberPath="Description"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True" Margin="0,201,0,204" Background="#CDC5CBC5"
dd:DragDrop.DropHandler="{Binding}" />
这是在我的viewmodel中:
public int MaxTime
{
get { return maxTime; }
set { maxTime = value;
OnPropertyChanged("MaxTime");
this.examQuestion.MaxTime = value;
}
}
答案 0 :(得分:0)
每次选择列表框中的项目时,都必须更新MaxTime属性。否则,在列表框中选择项目时,Textbox.Text值将不会更新。
编辑: 有很多方法可以做到这一点:)你的listbox selectedItem绑定到SelectedQuestionDropList。所以只需添加
OnPropertyChanged("MaxTime");
到二传手。此解决方案导致您的MaxTime属性与SelectedQuestionDropList属于同一个类。 另一种简单的方法是使用列表框中的SelectionChanged事件,并使用MaxTime属性调用类上的方法(例如NotifyAll())。
答案 1 :(得分:0)
您可能需要更改UpdateSourceTrigger
的{{1}}属性的Text
,并将其设置为TextBox
而不是LostFocus
。
PropertyChanged