我有一个带有2个网格的用户控件。现在我希望能够检索具有焦点的网格并将其公开给我的视图模型。我怎么能在WPF中这样做?
我想在我的视图模型中使用具有焦点的Grid
的名称填充属性。这似乎并不容易。
有人可以帮忙吗?
THX!
答案 0 :(得分:0)
如果要将UI元素或特定部分暴露给您的视图模型,您真的应该重新考虑您的设计。通常,您的viewmodel不应该知道任何特定的ui元素。你究竟想用ui元素的名字做什么?您可以在两个网格上收听GotFocus事件 像
<Grid x:Name="Grid1" GotFocus="OnGridGotFocus"/>
<Grid x:Name="Grid2" GotFocus="OnGridGotFocus"/>
并将此方法添加到UserControl,在此方法中,您可以通过
检索它private static void OnGridGotFocus(object aSender, RoutedEventArgs aE)
{
string name = (string)(aSender as DependencyObject).GetValue(NameProperty);
}
现在可以将名称写入绑定到视图模型的DependencyProperty
。但是,我仍然认为你不应该这样做。
如果您解释一下您想要达到的目标,也许我们可以帮助您更好。