Silverlight 使用域数据源将数据绑定到文本块
我有一个每个州的热点地图(在Expression Blend中完成)。我捕获该州的每个鼠标指针(1到50)。我将其传递到我的域数据源:Silverlight 使用域数据源将数据绑定到文本块,silverlight,binding,stackpanel,Silverlight,Binding,Stackpanel,我有一个每个州的热点地图(在Expression Blend中完成)。我捕获该州的每个鼠标指针(1到50)。我将其传递到我的域数据源: Dim activebox As Path = TryCast(sender, Path) activebox.Fill = mouseOverColor Dim StateID As Integer = CInt(Right(activebox.Name, 2)) Dim _StateContext As New State
Dim activebox As Path = TryCast(sender, Path)
activebox.Fill = mouseOverColor
Dim StateID As Integer = CInt(Right(activebox.Name, 2))
Dim _StateContext As New StateContext
myDataGrid.ItemsSource = _StateContext.States
_StateContext.Load(_StateContext.GetStateByStateIDQuery(StateID.Text))
上述方法适用于datagrid、listbox甚至dataform
但我创建了一个带有文本块的stackpanel弹出窗口
popupStatesBox.DataContext = ??????????????
popupStatesBox.IsOpen = True 'popup does open but has no data
--popustatesbox.xaml
假设您已经在上下文中加载了States集合,那么这可能就是您想要的:-
popupStatsBox.DataContext = _StateContext.States.FirstOrDefault(Function(s) s.StateID = StateID)
请注意,将数据编码到元素名称中不是一种好的做法,请查看创建附加属性并将状态ID存储为每个路径的附加属性
老实说,我很想创建一个从选择器派生的自定义控件来创建StatesSelector控件
您可以将ItemsSource属性绑定到States集合。当鼠标移动时
关于将ItemsSource中的适当项目分配给SelectedItem
属性
然而,这可能有点太过分了 您的工作示例是什么样的?我很想知道你将如何使用列表框来代替弹出窗口。当然州集合已经有你需要的州数据了?谢谢Anthony。它几乎像我预期的那样工作。在mouseenter上加载数据似乎有延迟。当我用鼠标输入一个图像并传递一个数值时,弹出窗口将不显示数据。如果我将鼠标移出,然后再次将鼠标插入,弹出窗口将显示数据。顺便说一句,您提到“老实说,我很想创建一个从选择器派生的自定义控件来创建StateSelector控件。”我在哪里可以找到有关“…自定义控件…”的更多信息?
popupStatsBox.DataContext = _StateContext.States.FirstOrDefault(Function(s) s.StateID = StateID)