Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF依赖属性问题_C#_Wpf_Button_Data Binding_Combobox - Fatal编程技术网

C# WPF依赖属性问题

C# WPF依赖属性问题,c#,wpf,button,data-binding,combobox,C#,Wpf,Button,Data Binding,Combobox,我想知道是否有人能解释一下两者之间的区别 将集合的选定值绑定到组合框 或者将值绑定到按钮内容 那样 <ComboBox x:Name="_culturedTitleViewModelSelector" Visibility="Hidden" Style="{StaticResource ResourceKey=_culturedTitleViewModelSelectorStyle}" ItemsSource="{Binding Path=AvailableCul

我想知道是否有人能解释一下两者之间的区别 将集合的选定值绑定到组合框

或者将值绑定到按钮内容

那样

<ComboBox x:Name="_culturedTitleViewModelSelector" Visibility="Hidden"  Style="{StaticResource ResourceKey=_culturedTitleViewModelSelectorStyle}"
            ItemsSource="{Binding Path=AvailableCultures, Source={x:Static Localized:ResourcesManager.Current}}"
            SelectedValue="{Binding Path=CurrentCulture, Source={x:Static Localized:ResourcesManager.Current}}"


<Button x:Name="LanguageBtn" Content="{Binding Path=CurrentCulture, Source={x:StaticLocalized:ResourcesManager.Current}}"
如果我没有将组合框的SelectedItem设置为其他区域性。没有通知我的语言行为类

:

我希望组合框内容与按钮内容的工作方式相同

在我的Generic.Xaml中,我这样做:

  <Style TargetType="{x:Type TextBlock}" x:Key="_textBlockLanguageProperty">
    <Setter Property="WpfServices:LanguageBehavior.Language" Value="{Binding Path=CurrentCulture, Source={x:Static Localized:ResourcesManager.Current}}" 
        />
</Style>
当前:

    public static ResourcesManager Current
    {
        get
        {
            if (_resourcesManager == null)
            {
                var cultureProvider = new BaseCultureProvider();
                _resourcesManager = new ResourcesManager(cultureProvider);
                _resourcesManager.Init();
            }
            return _resourcesManager;
        }
    }
编辑:

我的_culturedtitelviewmodelselector样式是

 <Style TargetType="{x:Type ComboBox}" x:Key="_culturedTitleViewModelSelectorStyle">
    <Setter Property="DisplayMemberPath" Value="DisplayName" />
    <Setter Property="SelectedValuePath" Value="." />
    <Setter Property="HorizontalAlignment" Value="Right" />
    <Setter Property="MaxHeight" Value="40" />
    <Setter Property="FontSize" Value="20" />
    <Setter Property="Margin" Value="5" />
    <Setter Property="SelectedIndex" Value="0" />
    <Setter Property="IsSynchronizedWithCurrentItem" Value="True" />
</Style>

组合框中
所选值绑定到特定区域性。这将从可用区域性列表中选择该区域性,并因此触发
CurrentCulture
属性上的设置

按钮的
内容
属性
只是向用户显示某些内容,而不是进行任何分配。它读取属性值,然后显示它。这就是为什么您需要在
单击
事件中手动更改区域性以使其执行任何操作


如果希望用户能够从可用值列表中选择一个值,可以使用
组合框
列表框
按钮
用于触发特定操作,而不是从列表中进行选择。

嗨,布莱恩,这不是我的意思。我正在使用按钮的内容{Binding Path=},当我从代码更改属性时,它不会更改。如果我在组合框中执行相同操作,则按钮的内容会发生更改。您的
\u CulturedTitleDeviceModelSelectorStyle是什么?您好,我可以在按钮处查看我的编辑。
  public CultureInfo CurrentCulture
    {
        get { return CultureProvider.Current; }
        set
        {
            if (value != CultureProvider.Current)
            {
                CultureProvider.Current = value;
                OnCultureChanged();
            }
        }
    }
    public static ResourcesManager Current
    {
        get
        {
            if (_resourcesManager == null)
            {
                var cultureProvider = new BaseCultureProvider();
                _resourcesManager = new ResourcesManager(cultureProvider);
                _resourcesManager.Init();
            }
            return _resourcesManager;
        }
    }
 <Style TargetType="{x:Type ComboBox}" x:Key="_culturedTitleViewModelSelectorStyle">
    <Setter Property="DisplayMemberPath" Value="DisplayName" />
    <Setter Property="SelectedValuePath" Value="." />
    <Setter Property="HorizontalAlignment" Value="Right" />
    <Setter Property="MaxHeight" Value="40" />
    <Setter Property="FontSize" Value="20" />
    <Setter Property="Margin" Value="5" />
    <Setter Property="SelectedIndex" Value="0" />
    <Setter Property="IsSynchronizedWithCurrentItem" Value="True" />
</Style>