ComboBox w Ribbon

0

Witam
Potrzebuję umieścić ComboBox na wstążce ribbon i po przeglądnięciu internetu mam kod

<ribbon:RibbonComboBox x:Name="Jednostka" IsEditable="False" Width="250" SelectionBoxWidth="225">
<ribbon:RibbonGallery SelectedItem="{Binding Path=DAL.SelectedItemJednostka}">
<ribbon:RibbonGalleryCategory x:Name="galComboBox"
ItemsSource="{Binding Path=DAL.JednostkaSelect}"
DisplayMemberPath="nazwa" />
</ribbon:RibbonGallery>
</ribbon:RibbonComboBox>

Niby wszystko chodzi ale gdy wybieram jednostkę z listy to czasami wybrana pozycja nie jest akceptowana tylko ponownie jest wybierana ta która była poprzednio. Gdy dla sprawdzenia co się dzieje umieściłem dodatkowy kod w 'set' właściwości DAL.SelectedItemJednostka to normalnie jest null,2,2 gdzie pierwsze jest podczas otwierania listy, a index 2 już po wybraniu (pewnie pierwszy to gdy ja klikam, a 2 gdy .net przenosi select na nowy element). Gdy jednak nie zmienia się wybrany element to mam null,2,1,1. Te jedynki to poprzednio wybrany element.
Czy ktoś jest w stanie wytłumaczyć dlaczego tak jest i jak zrobić aby nie było takiej sytuacji.
Można by było machnąć ręką jakby to była sytuacja sporadyczna, ale niestety gdy dodałem dodatkowy kod do 'set' to teraz częściej mam brak wyboru niż poprawną zmianę.

Grzesiek

0

Wygląda to na Microsoftowy ribbon z System.Windows.Controls.Ribbon. I pewnie dało by się wytłumaczyć ale nikomu nie chce się wymyślać takiego przypadku. Więc dodaj oprócz kodu xaml również co siedzi za tym czyli cały niezbędny kod c#. ;)

0

Tak to microsoftowy ribbon

Kad poskracam do istotnych części bo jest go dużo

w MainWindow.xaml okna głównego

<dbnet:DBNETWindow x:Class="WpfRibbonApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:WpfRibbonApplication1"
xmlns:dbnet="clr-namespace:ACDBNET;assembly=ACDBNET"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
Title="Aplikacja Ribbon"
x:Name="RibbonWindow"
Width="719" Height="772" MinWidth="719" MinHeight="626">
<Window.Resources>
...
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ribbon:Ribbon x:Name="Ribbon" Background="#FFD4D0C8" BorderBrush="#FF688CAF">
ribbon:Ribbon.ApplicationMenu
...
</ribbon:Ribbon.ApplicationMenu>
<ribbon:RibbonTab x:Name="ViewTab" Header="Widok" KeyTip="">
<ribbon:RibbonGroup x:Name="JednostkaRTab" Header="Jednostka">
<ribbon:RibbonComboBox x:Name="Jednostka" IsEditable="False" Width="250" SelectionBoxWidth="225">
<ribbon:RibbonGallery SelectedItem="{Binding Path=DAL.SelectedItemJednostka}" >
<ribbon:RibbonGalleryCategory x:Name="SiteFilterComboBox"
ItemsSource="{Binding Path=DAL.JednostkaSelect}"
DisplayMemberPath="nazwa" />
</ribbon:RibbonGallery>
</ribbon:RibbonComboBox>
</ribbon:RibbonGroup>
</ribbon:RibbonTab>
</ribbon:Ribbon>
...
</Grid>
</dbnet:DBNETWindow>

w MainWindow.xaml.cs okna głównego

using ri = Microsoft.Windows.Controls.Ribbon;
using ACDBNET;
using ...

public partial class MainWindow : DBNETWindow
{

public VWMainWindow w = null;

    public MainWindow() : base()
    {
            InitializeComponent();
            this.WindowState = WindowState.Maximized;
            RibbonWindow.DataContext = w;

}
}

public class VWMainWindow
{
public PDAL DAL { get; set; }
public VWMainWindow()
{
DAL = new PDAL();
}
}

public interface IACJednostka 
{
    int id { get; set; }
    int nr { get; set; }
    int lp { get; set; }
    string nazwa { get; set; }

...
}
public class ACJednostka : IACJednostka
{
...
}
public class PDAL
{
public List<IACJednostka> JednostkaSelect { get; set; }
private IACJednostka _selectedItemJednostka;
public IACJednostka SelectedItemJednostka
{
get { return _selectedItemJednostka; }
set
{
_selectedItemJednostka = value;
}
}
public PDAL()
{ // odczyt z bazy
...
}
}

Jak widać żadnych cudów tu nie ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1