【发布时间】:2014-12-29 09:18:31
【问题描述】:
我一直在与自定义控件绑定的某个问题作斗争,我似乎无法解决。
我正在尝试将从网络下载的向导控件绑定到我的一个屏幕,但由于某种原因,绑定无法通过。
我已将问题缩小到实际上是导致问题的一行代码。
private readonly MainPageViewModel vm;
public MainPage()
{
InitializeComponent();
vm = new MainPageViewModel();
DataContext = vm;
}
它正在覆盖数据上下文(使用 MVVM 模式打开主页面 VM)。
当我删除数据上下文覆盖时,我的绑定工作正常,但所有其他控制功能都无法正常工作。
现在很明显,我可能做错了什么或者我遗漏了什么,我希望在您的帮助和专业知识下解决这个问题。
当我绑定到我的屏幕时,这是自定义控件的 XAML 的一部分,可能是因为发生了 datacontext 覆盖,我需要将 Source 添加到我的绑定中,如果是这样,源是什么?
<controls:TabItem Header="introduction"
Tag="WELCOME TO THE INSERT PRODUCT WIZARD"
Visibility="Collapsed" >
<StackPanel>
<TextBox x:Name="txtTest" Width="300" Text="{Binding Path=Screen.intBindTest, Mode=TwoWay}"/>
<ComboBox ItemsSource="{Binding Screen.vw_COUNTRIES, Mode=OneWay}"
SelectedItem="{Binding Screen.vw_COUNTRIES.SelectedItem, Mode=TwoWay}"
DisplayMemberPath="COUNTRYNAME"/>
</StackPanel>
</controls:TabItem>
我的问题不是我如何绑定 silverlight 自定义控件,我的问题是当我明确地将数据上下文指定为 ViewModel 时,LightSwitch 绑定不起作用,但如果我删除它,那么 Lightswitch 可以很好地绑定,但其余的控制被破坏了。
基本上我需要的是如何通过 XAML 或任何其他方式将 lightswitch 数据上下文显式分配到我的文本框中。
非常感谢。
【问题讨论】:
标签: mvvm custom-controls silverlight-5.0 lightswitch-2012