Witajcie, proszę o pomoc, bo zaraz mnie coś trafi....
Próbuję zbindować do widoku wartości właściwość z obiektu klasy CCOM.
Mam w Model deklarację klasy obiekt CCOMport:
namespace PortaBarcode.Model
{
class CCOMport
{
private int _baudRate;
public int BaudRate { get; set; }
private int _dataBits;
public int DataBits { get; set; }
private string _portName;
public string PortName { get; set; }
}
}
Potem w ModelView mam klasę KonfiguracjaPortuViewModel.W tej klasie tworzę obiekt klasy CCOMport i ustawiam wartość port_COM.BaudRate. Następnie chcę zbindować tą właściwość w widoku (kod niżej). Chodzi o właściwość BaudRate. Jeżeli przekazuję właściwość klasy KonfiguracjaPortuViewModel, czyli MyProperty to bindowanie działa ładnie i wyświetlana jest wartość. A problem jest z obiektem klasy CCOmport. Może nie wiem jak ustawić datacontext na obiekty.
<b>ViewModel</b>:
```csharp
namespace PortaBarcode.ViewModel
{
class KonfiguracjaPortuViewModel
{
public int MyProperty { get; set; }
public CCOMport port_COM;
public KonfiguracjaPortuViewModel()
{
MyProperty = 1111;
port_COM = new CCOMport();
port_COM.BaudRate = 2222222;
}
}
}
W code behind widoku ustawiam datacontext na :
this.admin_pass_grid.DataContext = new KonfiguracjaPortuViewModel();
Jest to datacontext od grida
View:
<Grid Name="admin_pass_grid">
<WrapPanel>
<Label Width="50" Margin="2,3,5,3">ID:</Label>
<TextBox Name="barcode_manual_text" Margin="5,3,5,3" Width="100"
Background="Wheat" Text="{Binding port_COM}" ></TextBox>
</WrapPanel>
</Grid>
Próbowałem też ustawiać datacontext textboxa na klasę z ViewModel, ale to też nie pomagało:
this.barcode_manual_text.DataContext = new KonfiguracjaPortuViewModel();
Przypominam , że z właściwością MyProperty klasy konfiguracja portu zadziałało poprawnie.
Zadziałało dopiero po ustawieniu dziedziczenia klasy KonfiguracjaPortuViewModel : CCOMport , no ale to przecież jest niezgodne z wzorcem. Co będzie jak będę używał kilku różnych obiektów i będę chciał wyświetlać wyniki w widoku?
Czy dla każdego wyświetlanego elementu w widoku trzeba tworzyć oddzielne właściwości w wartwie ViewModel?
Dzięki za pomoc.
Maciej