我有一个ComboBox,我需要在我的应用程序的多个地方使用,所以我设置大部分的属性ComboBox中ResourceDictionary和使用,作为一个风格在以往任何时候我需要它.
风格ComboBox是:
<Style TargetType="{x:Type ComboBox}" x:Key="ComboBoxBranch">
<Setter Property="ItemsSource" Value="{Binding Branches}"></Setter>
<Setter Property="DisplayMemberPath" Value="BranchName"></Setter>
<Setter Property="SelectedItem" Value="{Binding SelectedBranch}"></Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
我在我的XAML中使用它是这样的:
<ComboBox Style="{StaticResource ComboBoxBranch}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectCustomerCommand}" CommandParameter="{Binding SelectedBranch}" ></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
我想移动交互触发器代码ResourceDictionary,所以我不需要在我的所有xamls中编写它.有可能吗?
假设我有一个Windows应用商店应用(针对Windows 8.1),并且在页面上有一个ContentControl,如下所示:
<ContentControl>
<ContentControl.Content>
<TextBlock>Hello world</TextBlock>
</ContentControl.Content>
</ContentControl>
Run Code Online (Sandbox Code Playgroud)
这工作绝对正常,但如果我尝试将内容设置为资源,如下所示:
<Page.Resources>
<TextBlock x:Key="TestContent">Hello world</TextBlock>
</Page.Resources>
<ContentControl Content="{StaticResource TestContent}" />
Run Code Online (Sandbox Code Playgroud)
设计器中的一切看起来都很棒,但是我在运行时遇到以下错误:
无法分配给属性'Windows.UI.Xaml.Controls.ContentControl.Content'
我已经尝试在各个地方定义资源(app.xaml,单独的资源文件等),但每次都会得到相同的错误.
所以,我有一些问题: